Overview

This page outlines the system requirements for setting up and running the JFrog product servers for each product, including:

  • Recommended and required hardware
  • Supported platforms
  • Java requirements
  • Supported browsers
  • Other special requirements 

While not a strict requirement, it is strongly recommended to run each JFrog product on its own separate server.


Requirements Matrix

The tables below describe what is required for each single-service node. In a High Availability configuration, a single-service node represents each of the HA server instances.

Supported Platforms:

ProductDebianCentosRHELUbuntuWindows Server
Artifactory8.x, 9.x, 10.x6.x, 7.x, 8.x6.x, 7.x, 8.x16.04, 18.042008 R2, 2016 or 2019
Mission Control8.x, 9.x, 10.x6.x, 7.x, 8.x6.x, 7.x, 8.x16.04, 18.04(error)
Xray8.x, 9.x, 10.x6.x, 7.x, 8.x6.x, 7.x, 8.x16.04, 18.04(error)
Distribution8.x, 9.x, 10.x6.x, 7.x, 8.x6.x, 7.x, 8.x16.04, 18.04(error)
Pipelines(error)7.x7.x16.04, 18.04Build nodes only

Processor: 64 bit OS/JVM

ProductProcessorMemoryStorageExternal Network PortInternal Network Ports (default)Databases/Third Party Applications
Artifactory (Version 7.0 and above)

Based on number of users (Min. 4 cores):

Based on number of users (Min. 4 GB):


Based on expected artifact storage volume. Fast disk with free space that is at least 3 times the total size of stored artifacts.

  • 8081
  • 8082
  • 8081 for Artifactory
  • 8040 and 8045 for Access
  • 8048 and 9092 for the Replicator
  • 8070 for Web
  • 8086 for Metadata
  • 8082, 8046, 8047 and 8049 for the Router
Supported:
Oracle (11.2, 12.1, 12.2, 18, 19),
MySQL (5.6, 5.7),
MS SQL (2012 and above),
PostgreSQL (9.5, 9.6, 10, 11)
MariaDB (10.1)

Mission Control
(Version 4.0 and above)

Min requirements. Assuming running with an external database.
Actual values may change based on the amount of data in your application.

4 cores12 GB100 GB
  • 8082
  • 8080 for Mission Control Server
  • 8085 for Scheduler
  • 8087 for Executor
  • 8090 for Insights 
  • 9200 for Elasticsearch (if bundled)
  • 5432 for PostgreSQL (if bundled)
  • 8082, 8046, 8047 and 8049 for the Router

Required: PostgreSQL (9.5, 9.6, 10.x, 10.5, 11.5), ElasticSearch 6.6.x (for Mission Control versions 4.0 and 4.2)

ElasticSearch 7.6.1 (for Mission Control versions 4.3.2 and above) 


Xray
(Version 3.0 and above)

Min requirements. Assuming running with an external database.
Actual values may change based on the amount of data in your application.

6 cores

9 GB100 GB
  • 8082
  • 8000 for Xray Server
  • 7000 For Analysis
  • 7002 For Indexer
  • 7003 for Persister
  • 8082, 8046, 8047 and 8049 for the Router
  • 5671, 5672 and 15672 for RabbitMQ
  • 5432 for PostgreSQL (if bundled)

Required: PostgreSQL (9.x), PostgreSQL 10.x (for Xray versions 3.4.0 and above)

Storage:
300 GB
with 3000 iops


RabbitMQ



Distribution (Version 2.0 and above)

Min requirements. Assuming running with an external database.
Actual values may change based on the amount of data in your application.

3 cores5 GB50 GB
  • 8082
  • 8080 for the Distribution Server
  • 8082, 8046, 8047 and 8049 for the Router
  • 6379 for Redis
  • 5432 for PostgreSQL (if bundled)

Required: PostgreSQL (9.5, 9.6, 10.X, 11.X, and 12.X)

Pipelines (Version 1.0 and above) 4 cores8 GB100 GB
  • 8082
  • 30001
  • 30200
  • 8082 for Pipelines API
  • 30001 for Pipelines WWW (UI)
  • 22 for SSH access to the instance
  • 5432 for Database (PostgreSQL) access
  • 30200 for RabbitMQ
  • 30201 for RabbitMQ Admin
  • 30100 for Vault
  • 6379, 16379, 6380, 16380, 6381, 16381 for Redis Cluster
Required: PostgreSQL (9.5),
RabbitMQ (3.5.7)

Java

Java based products (Artifactory, Distribution, Mission Control) must run with JDK 11. The JDK is already bundled into the applications.

JVM Memory Allocation

While not a strict requirement, we recommend that you modify the JVM memory parameters used to run Artifactory.

You should reserve at least 512MB for Artifactory. The larger your repository or number of concurrent users, the larger you need to make the -Xms and -Xmx values accordingly.

Set your JVM parameters in the system.yaml configuration file.

shared:
  extraJavaOpts: "-Xms512m -Xmx2g"

Browsers

Artifactory has been tested with the latest versions of:

  • Chrome
  • Firefox
  • Safari

System Time Synchronization

The JFrog Platform requires time synchronization between all JFrog services within the same Platform. 

Unsynchronised services may cause issues during authentication and token verification.


Docker Requirements

For Docker and Docker Compose installations, JFrog services require Docker v18 and Docker Compose v1.24 and up to be installed on the machine on which you want to run on.

For install instructions, please refer to the and the documentation.


Special Requirements

Artifactory - Working with Very Large Storage

In most cases, our recommendation is for storage that is at least 3 times the total size of stored artifacts in order to accommodate system backups. However, when working with a very large volume of artifacts, the recommendation may vary greatly according to the specific setup of your system.  Therefore, when working with over 10 Tb of stored artifacts, please contact JFrog support who will work with you to provide a recommendation for storage that is customized to your specific setup.

Xray downloads and then deletes fetched artifacts after indexing. However, in order to have more parallel indexing processes, and thereby more temporary files at the same time would require more space.

This is especially applicable for large BLOBs such as Docker images.

Xray - File Handle Allocation Limit

In the process of deep recursive scan in which Xray indexes artifacts and their dependencies (metadata), Xray needs to concurrently manage many open files. The default maximum number of files that can be opened concurrently on Linux systems is usually too low for the indexing process and can therefore cause a performance bottleneck. For optimal performance, we recommend increasing the number of files that can be opened concurrently to 100,000 (or the maximum your system can handle) by following the steps below.

Use the following command to determine the current file handle allocation limit:

cat /proc/sys/fs/file-max

Then, set the following parameters in your /etc/security/limits.conf file to the lower of 100,000 or the file handle allocation limit determined above.

The example shows how the relevant parameters in the /etc/security/limits.conf file are set to 100000. The actual setting for your installation may be different depending file handle allocation limit in your system.

root hard nofile 100000
root soft nofile 100000
xray hard nofile 100000
xray soft nofile 100000
postgres hard nofile 100000
postgres soft nofile 100000
<iframe width="560" height="315" src="https://www.youtube.com/embed/bPhYrgjV0so" frameborder="0" allowfullscreen></iframe>