Distribution Single Node Linux Archive Installation

JFrog Installation & Setup Documentation

Content Type
Installation & Setup
ft:sourceType
Paligo

Install the following prerequisites independently of the Distribution archive installation. Make sure to install them before starting your Xray service.

  • PostgreSQL

  • Redis

For more information, see Third Party Applications for Distribution.

From Distribution 2.5.x, you need to first install PostgreSQL separately as the PostgreSQL binaries are no longer bundled with the Linux archive installer for Distribution.

Before you proceed, see System Requirements for information on supported platforms, supported browsers, and other requirements.

Operating Systems and Platform Support

The following table lists the supported operating systems and the versions.

Product

Debian

RHEL

Ubuntu

Windows Server

Amazon Linux

Distribution

10.x, 11.x

8.x, 9.x

20.04, 22.04

Amazon Linux 2023

Operating Systems - End of Support

As part of JFrog commitment to maintain the security and reliability of the JFrog Platform, Artifactory will officially run with Node.js 20.x on all installation types from Artifactory 7.77.3.

Node.js 20.x provided with Linux Archive/Debian/RPM installations (non-containerized distributions) is not supported on the following operating systems.

Hence, these operating systems will no longer supported from Artifactory version 7.77.3.

Supported Platforms

The following table lists the supported platforms.

Product

x86-64

ARM64

Kubernetes

OpenShift

Distribution

1.19+

Installation on Kubernetes environments is through Helm Charts. Supported Helm version is Helm 3+.

ARM64 Support

From version 7.41.4, Artifactory supports installation on ARM64 architecture through Helm and Docker installations. You must set up an external database as the Artifactory database since Artifactory does not support the bundled database with the ARM64 installation. Artifactory installation pulls the ARM64 image automatically when you run the Helm or Docker installation on the ARM64 platform.

ARM64 support is also available for Xray, Pipelines (in Helm installation), and Insight. ARM64 support is not available for Distribution.

Database and Third-Party Applications in Distribution

Distribution supports the following versions of PostgreSQL.

  • 15.x

  • 13.x

  • 12.x

  • 11.x

  • 10.x

Distribution HA requires an external database. Any change to configuration requires restarting of any Distribution node for changes to take effect for the whole Distribution cluster.

Distribution requires Redis and supports Redis 7.x. A supported Redis version is bundled with the Distribution installer.

Redis Password Restrictions

Redis password should contain only alphanumeric characters and should not contain any special characters.

Distribution Network Ports

Distribution uses the 8082 port by default for external communication.

Distribution uses the following internal ports by default for communication with JFrog Platform microservices.

Microservice

Port

Distribution Server

8080

Router

8082, 8046, 8047, and 8049

Redis

6379

PostgreSQL (if you use the bundled Postgres database)

5432

Observability

8036

gRPC

8037

Complete the following steps to install the product.

  1. Extract the contents of the compressed archive and move it into distribution directory.

    tar -xvf jfrog-distribution-<version>-linux.tar.gz
    mv jfrog-distribution-<version>-linux distribution

    Note

    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/distribution/var/etc/system.yaml file.

  2. Start PostgreSQL.

  3. Customize the product configuration.

    1. Set the Artifactory connection details.

    2. Customize the PostgreSQL Database connection details. (optional)

    3. Set any additional configurations (for example: ports, node id) using the Distribution system.yaml configuration file.

  4. Start and manage the Distribution service as the user who extracted the tar.

    As a process

    distribution/app/bin/distribution.sh start

    Manage the process.

    distribution/app/bin/distribution.sh start|stop|status|restart

    As a service

    Distribution is packaged as an archive file and an install script that can be used to install it as a service running under a custom user. Currently supported on Linux systems.

    OS User Permissions

    When running Distribution as a service, the installation script creates a user called distribution (by default)which must have run and execute permissions on the installation directory.

    It is recommended to extract the Distribution download file into a directory that gives run and execute permissions to all users such as /opt.

    To install Distribution as a service, execute the following command as root:

    Note

    User and group can be passed through distribution/var/etc/system.yaml as shared.user and shared.group. This takes precedence over values passed through the command line on install.

    distribution/app/bin/installService.sh 
    --user <enter user, default value is distribution> 
    --group <enter group, default value is distribution> -u | --user                                       : [optional] (default: distribution) user which will be used to run the product, it will be created if its unavailable-g | --group                                      : [optional] (default: distribution) group which will be used to run the product, it will be created if its unavailable

    The user and group is stored in distribution/var/etc/system.yaml at the end of installation.

    To manage the service, use systemd or init.d commands depending on your system.

    Using systemd

     systemctl <start|stop|status> distribution.service

    Using init.d

    service distribution <start|stop|status>
  5. Access Distribution from your browser at:http://<jfrogUrl>/ui/.

    Go to theDashboard tab in theApplicationmodule in the UI.

  6. Check the Distribution Log.

    tail -f distribution/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.Configuring Log Rotation for Tomcat

After installing and before running Distribution, you may set the following configurations.

Where to find the system configurations?

You can configure all your system settings using the system.yaml file located in the $JFROG_HOME/distribution/var/etc folder. For more information, see Distribution YAML Configuration.

If you don't have a System YAML file in your folder, copy the template available in the folder and name it system.yaml.

For the Helm charts, the system.yaml file is managed in the chart’s values.yaml.

Artifactory Connection Details for Distribution

Distribution requires a working Artifactory server and a suitable license.

The Distribution connection to Artifactory requires the following parameters.

  • jfrogUrl - URL to the machine where JFrog Artifactory is deployed, or the load balancer pointing to it. It is recommended to use DNS names rather than direct IPs. For example: http://jfrog.acme.com instead of http://10.20.30.40:8082.

    Set it in the Shared Configurations section of the $JFROG_HOME/distribution/var/etc/system.yaml file.

  • join.key - This is the secret key required by Artifactory for registering and authenticating the Distribution server.

    You can fetch the Artifactory joinKey (join Key) from the JPD UI in the Administration module | User Management | Settings | Join Key.

    Set the join.key used by your Artifactory server in the Shared Configurations section of the $JFROG_HOME/distribution/var/etc/system.yaml file.

Add Signing Keys to JFrog Distribution

The JFrog Platform supports signing keys to establish trust with your clients for downloading your packages from Artifactory. Signing keys consist of a public and a private key pair, which are used for signing and verifying release bundles. When installing a new Edge, you will need to propagate the public keys to the new Edge. To learn about how to add and propagate keys, see GPG Signing.GPG Signing

Change PostgreSQL Database Credentials

Distribution comes bundled with a PostgreSQL Database out-of-the-box, which comes pre-configured with default credentials

To change the default credentials:

# Access PostgreSQL as the Distribution user adding the optional -W flag to invoke the password prompt
$ psql -d distribution -U distribution -W
  
# Securely change the password for user "distribution". Enter and then retype the password at the prompt.
\password distribution
  
# Verify the update was successful by logging in with the new credentials
$ psql -d distribution -U distribution -W

Set your PostgreSQL connection details in the Shared Configurations section of the $JFROG_HOME/distribution/var/etc/system.yaml file.

Change Redis Database Credentials

Redis Password Restrictions

Redis password should contain only alphanumeric characters and should not contain any special characters.

  1. Set the new password in the $JFROG_HOME/distribution/app/third-party/redis/redis.conf file.

    requirepass <new password>
    • Linux Archive

      The file is available at $JFROG_HOME/distribution/app/third-party/redis/redis.conf.

  2. Set your Redis password in the Shared Configurations section of the $JFROG_HOME/distribution/var/etc/system.yaml file.

  3. Restart all the services.

    Linux Archive
    
    distribution/app/bin/distribution.sh restart 
Third Party Applications for Distribution
PostgreSQL for Distribution

You must install PostgreSQL before you proceed with the installation of Distribution.

PostgreSQL for Linux Archive

PostgreSQL binaries are no longer bundled with Linux archive installer. You need to install PostgreSQL manually.

Run the following commands to seed the tables and schema needed by Distribution.

<pgsql bin path>/psql template1
<postgres prompt>: CREATE DATABASE <user_name>;
<postgres prompt>: \q
   
## run the script to seed the tables and schemas needed by Distribution
POSTGRES_PATH=<pgsql bin path> distribution/app/third-party/postgresql/createPostgresUsers.sh
Redis for Distribution

Redis Password Restrictions

Redis password should contain only alphanumeric characters and should not contain any special characters.

Redis Linux Archive Installation

Redis binaries are available in jfrog-distribution-<version>-linux/app/third-party/redis/bin. You must setup the Redis server before you install Distribution.