Before you proceed with the installation, review the system requirements.
Artifactory system requirements depend mainly upon the expected amount of active clients.
Number of Active Clients | Processor | Memory |
---|---|---|
0-20 | 4 core CPU | 4 GB |
20-100 | 4 core CPU | 8GB |
100-200 | 8 core CPU | 12 GB |
200+ | Contact JFrog Support | Contact JFrog Support |
Operating Systems and Platform Support
The following table lists the supported operating systems and the versions.
Product | Debian | RHEL | Ubuntu | Amazon Linux | Windows Server |
---|---|---|---|---|---|
Artifactory | 10.x, 11.x | 8.x, 9.x | 20.04, 22.04 | Amazon Linux 2023 | 2016 or 2019 |
Xray | 10.x, 11.x | 8.x, 9.x | 20.04, 22.04 | ||
Distribution | 10.x, 11.x | 8.x, 9.x | 20.04, 22.04 | ||
Insight | 10.x, 11.x | 8.x, 9.x | 20.04, 22.04 | Amazon Linux 2023 | |
Pipelines | 8.x | 20.04, 22.04 | Amazon Linux 2023 | Build nodes only |
Supported Platforms
The following table lists the supported platforms.
Product | x86-64 | ARM64 | Kubernetes | OpenShift |
---|---|---|---|---|
Artifactory | 1.19+ | 4.13+ | ||
Xray | 1.19+ | 4.13+ | ||
Distribution | 1.19+ | 4.13+ | ||
Insight | 1.19+ | |||
Pipelines | 1.19+ |
Installation on Kubernetes environments is through Helm Charts. Supported Helm version is Helm 3+.
Kubernetes Sizing Requirements
We have included YAML files with different sizing configurations for Artifactory , Xray, and Distribution in our GitHub pages. You can use these YAML files when you set up your cluster.
ARM64 Support
Starting 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, Distribution and Insight.
Artifactory Database Requirements
Artifactory supports the following databases:
PostgreSQL
Tip
JFrog highly recommends using PostgreSQL for all products in the JFrog Platform. For more information, see Choose the right database.
Oracle
MySQL
Microsoft SQL Server
MariaDB
Artifactory HA requires an external database, which is fundamental for the management of binaries and is also used to store cluster wide configuration files.
Since Artifactory HA contains multiple Artifactory cluster nodes, your database must be powerful enough to service all the nodes in the system. Moreover, your database must be able to support the maximum number of connections possible from all the Artifactory cluster nodes in your system.
If you are replicating your database you must ensure that at any given point in time all nodes see a consistent view of the database, regardless of which specific database instance they access. Eventual consistency, and write-behind database synchronization is not supported.
Artifactory Filestore
The filestore is where the binaries are physically stored.
Artifactory provides the following options to store binaries:
Local file system stores binaries with redundancy, using a binary provider that manages the synchronization of files between cluster nodes according to the defined redundancy settings.
Cloud storage is done using Amazon S3, Microsoft Azure, and Google Cloud Storage.
Network File System (NFS)
For more information, see Filestore Configuration.
Binary Storage
While Artifactory can use a Networked File System (NFS) for its binary storage, you should not install the application itself on an NFS. The Artifactory application needs very fast, reliable access to its configuration files. Any latency from an NFS will result in poor performance when the application fails to read these files. Therefore, install Artifactory on a local disk mounted directly to the host.
To use an NFS to store binaries, use the file-system binarystore.xml
configuration with the additional <baseDataDir>
setting.
Working with Very Large Storage
In most cases, our recommendation for storage is at least 3 times the total size of stored artifacts, in order to accommodate system backups.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, contact JFrog support, who will work with you to provide a recommendation for storage that is customized to your specific setup.
Allocated storage space may vary
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.
Artifactory Network Ports
Artifactory uses external network ports to communicate with services outside Artifactory and internal network ports to communicate with Artifactory and other JFrog Platform microservices.
External Network Ports
Artifactory uses the following external network ports by default:
8081
8082
Internal Network Ports
Artifactory uses the following internal network ports.
Microservice | Port |
---|---|
Artifactory | HTTP: 8081, 8091 |
Access | HTTP: 8040, 8015 gRPC: 8045, 8016 |
Frontend | HTTP: 8070 |
Metadata | HTTP: 8086 |
Router | HTTP: 8082, 8046, 8049 gRPC: 8047 |
Event | HTTP:8061 gRPC: 8062 |
JFConnect | HTTP: 8030 gRPC: 8035 |
Observability | HTTP: 8036 gRPC: 8037 |
Mission Control | HTTP: 8080 |
Installation Steps
Follow these steps to install the product:
Download Artifactory .
For example, download command for Artifactory Pro:
curl -g -L -O 'https://releases.jfrog.io/artifactory/artifactory-pro-rpms/jfrog-artifactory-pro/jfrog-artifactory-pro-[RELEASE].rpm'
Install Artifactory as a service on Red Hat compatible Linux distributions, as a root user.
yum install -y jfrog-artifactory-<pro|oss|cpp-ce>-<version>.rpm
Configure a connection to the database (mandatory).
Customize the product configuration (optional) including Java Opts, and filestore.
Manage Artifactory using the following commands.
service artifactory start|stop
Access Artifactory from your browser at:
http://SERVER_HOSTNAME:8082/ui/
. For example, on your local machine:http://localhost:8082/ui/
.Check Artifactory Log.
tail -F $JFROG_HOME/artifactory/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 Artifactory, you may set the following configurations:
System YAML Configuration File
Where to find system.yaml?
You can configure all your system settings using the
system.yaml
file located in the$JFROG_HOME
/artifactory/var/etc
folder. For more information, see Artifactory 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’svalues.yaml.
Configuring Database
If you're planning to use it in production, it is highly recommended to first Configure the Database, and then start Artifactory.
Customize Java Opts (optional)
Remember to modify your JVM Parameters as needed by setting
JAVA_OPTIONS
in Shared Configurations. The property to pass extra Java opts isartifactory.extraJavaOpts
. It is highly recommended to set your Java memory parameters as follows:Tip
The larger your repository or number of concurrent users, the larger you need to make the -Xms and -Xmx values accordingly. If you can reserve at least 512MB for Artifactory, the recommended minimal values are:
-server -Xms512m -Xmx2g -Xss256k -XX:+UseG1GC
For more recommendations about your hardware configuration (especially the -Xmx parameter), see System Requirements
Additional Settings
These include: customizing ports, joinKey (join.key), masterKey (master.key).
Configuring the Filestore
By default, Artifactory is configured to use the local file system as its filestore. Artifactory supports a variety of additional filestore configurations to meet a variety of needs for binary storage providers, storage size and redundancy.
Enable TLS 1.0 and 1.1 for Connectivity with Older Databases
Artifactory version 7.25.2 onwards includes OpenJDK version 11.0.11 and later. TLS 1.0 and TLS 1.1 are disabled by default from OpenJDK 11.0.11 onwards. If your database version does not support TLS 1.2, the Artifactory startup fails.
If you are unable to upgrade your database to a version that supports TLS 1.2 or later, perform the following steps to run Artifactory.
Download the java.security file that has TLS 1.0 and 1.1 enabled.
Create the directory,
${JFROG_HOME}/artifactory/var/bootstrap/artifactory/java
.Copy the java.security file into
${JFROG_HOME}/artifactory/var/bootstrap/artifactory/java.
Provide the appropriate permissions to the directory.
Note
Artifactory startup takes a backup of the existing java.security file and bootstraps custom java.security into the
${JFROG_HOME}/artifactory/app/third-party/java/conf/security
folder.
Configure Java Security File for Helm Installations
Create the following local directory.
mkdir -p java/configmap
Download the java.security file that has TLS 1.0 and 1.1 enabled.
Copy the java.security file to
java/configmap
.Run the following command to create a custom config map. For more information, see Using Config Maps.
kubectl create configmap java-security-config --from-file=java/configmap/java.security
Pass the following custom config map to your Helm install. For more information, see Using Config Maps.
artifactory: preStartCommand: "mkdir -p /opt/jfrog/artifactory/var/bootstrap/artifactory/java && cp -Lrf /tmp/java/* /opt/jfrog/artifactory/var/bootstrap/artifactory/java/" customVolumes: | - name: java-security-config configMap: name: java-security-config customVolumeMounts: | - name: java-security-config mountPath: /tmp/java/java.security subPath: java.security