Install the first node in the cluster.
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
For more information, see Install Artifactory single node with RPM.
Important
Do not start Artifactory after you complete the installation.
Install the first node in the cluster.
Install Artifactory as a service on compatible Linux distributions, as a root user.
dpkg -i jfrog-artifactory-<pro|oss|cpp-ce>-<version>.deb
For more information, see Install Artifactory single node with Debian.
Important
Do not start Artifactory after you complete the installation.
Install the first node in the cluster.
Create your Artifactory home directory and an empty
system.yaml
file. The user creating the folder should be the user running the docker run.Note
The following steps assume that
$JFROG_HOME
environment variable is created in the system. For the correct location of$JFROG_HOME
, see JFrog Product Directory Structure.mkdir -p $JFROG_HOME/artifactory/var/etc/ cd $JFROG_HOME/artifactory/var/etc/ touch ./system.yaml chown -R 1030:1030 $JFROG_HOME/artifactory/var
Run the following command in addition if you are using Docker on a Mac machine.
chmod -R 777 $JFROG_HOME/artifactory/var
For more information, see Install Artifactory single node with Docker.
Important
Do not start Artifactory after you complete the installation.
Install the first node in the cluster.
Create a JFrog Home directory and move the downloaded installer archive into that directory.
For example:
mkdir jfrog mv jfrog-artifactory-<pro|oss|cpp-ce>-<version>-linux.tar.gz jfrog cd jfrog
Set the JFrog Home environment variable.
export JFROG_HOME=<full path of the jfrog directory>
To learn more about the system variable JFROG_HOME, see JFrog Home.
Extract the contents of the compressed archive and move it into the
artifactory
directory.tar -xvf jfrog-artifactory-<pro|oss|cpp-ce>-<version>-linux.tar.gz mv artifactory-<pro|oss|cpp-ce>-<version> artifactory
For more information, see Install Artifactory Single Node with Linux Archive.
Important
Do not start Artifactory after you complete the installation.
Install the first node in the cluster.
Create a JFrog Home directory and move the downloaded installer archive into that directory, for example:
mkdir jfrog move jfrog-artifactory-<pro|oss|cpp-ce>-<version>-windows.zip jfrog cd jfrog
Set the path to JFrog Home directory as an environment variable called
JFROG_HOME
.set JFROG_HOME=<full path of the jfrog directory> #Example set JFROG_HOME=C:\myapps\jfrog
Extract the contents of the compressed archive and go to the extracted folder.
# Extract jfrog-artifactory-<pro|oss|cpp-ce>-<version>-windows.zip into jfrog folder move artifactory-<pro|oss|cpp-ce>-<version> artifactory
Install Artifactory manually or as a service.
Manual Installation
Browse to
%JFROG_HOME%\artifactory\app\bin
and execute the fileartifactory.bat
.Security settings
Depending on the security settings under Windows, you might need to run
artifactory.bat
using 'Run as administrator'Service Installation
Browse to
%JFROG_HOME%\artifactory\app\bin
, and execute the fileInstallService.bat
.Security
Windows 8 implements strict User Account Control (UAC). You must either disable UAC or right-click on
cmd.exe
and select "Run as administrator" in order to run this script.Firewall Alerts for first time Artifactory Windows Installation
When starting Artifactory, you may get some firewall exception messages. Please select private networks and allow access to continue working.
Stop the Artifactory service if you started it during the installation.
sc stop artifactory
For more information, see Install Artifactory single node on Windows.
Install the first node in the cluster.
Go to the download page, click the green arrow to download Docker Compose. Extract the contents of the compressed archive (.tar.gz file) and then go to the extracted folder.
tar -xvf jfrog-artifactory-<pro|oss|jcr|cpp-ce>-<version>-compose.tar.gz
.env file included within the Docker-Compose archive
This .env file is used by docker-compose and is updated during installations and upgrades.
Notice that some operating systems do not display dot files by default. If you make any changes to the file, remember to backup before an upgrade.
Run the interactive script to setup folders with required ownership.
bash ./config.sh
For more information, see Install Artifactory Single Node with Docker Compose.
Configure the
system.yaml
file with the database and node configuration details.Ensure that you set
haEnabled
field as true.For example:
shared: database: driver: org.postgresql.Driver password: password type: postgresql url: "jdbc:postgresql://<your db url, for example: localhost:5432>/artifactory" username: artifactory node: haEnabled: true taskAffinity: any
shared: node: haEnabled: true taskAffinity: any
Note
If you want to avoid using
config.sh
to install Artifactory HA, you can copytemplates/docker-compose.yaml
from the Docker Compose archive to each of the nodes and update.env
file accordingly to your setup.Perform Artifactory Product Configuration to configure the database and filestore.
Depending on your choices, a selected
docker-compose.yaml
will be available in the extracted folder. However, there are a few docker-compose templates in the directory templates. You can choose any template and copy it to the extracted folder asdocker-compose.yaml
.Configure the filestore in
$JFROG_HOME/artifactory/var/etc/artifactory/binarystore.xml
with the following entry.Configure the filestore in
%JFROG_HOME%\artifactory\var\etc\artifactory\binarystore.xml
with the following entry.<config version="2"> <chain template="cluster-file-system"/> </config>
If the directory and file do not exist, you can create them yourself.
Start the node.
For more information, see Run Artifactory as a service and Run Artifactory as a process.
service artifactory start
You can fetch the version number from here.
docker run --name artifactory_1 -v $JFROG_HOME/artifactory/var/:/var/opt/jfrog/artifactory -d -p 8081:8081 -p 8082:8082 releases-docker.jfrog.io/jfrog/artifactory-<pro|oss|cpp-ce>:<version> For example: docker run --name artifactory_1 -v $JFROG_HOME/artifactory/var/:/var/opt/jfrog/artifactory -d -p 8081:8081 -p 8082:8082 releases-docker.jfrog.io/jfrog/artifactory-<pro|oss|cpp-ce>:7.77.5
sc start artifactory
docker-compose -p rt-postgres -f docker-compose-postgres.yaml up -d docker-compose -p rt up -d docker-compose -p rt ps docker-compose -p rt down
Repeat the preceding steps 1 through 3 to install the additional nodes.
All nodes must have the same database configuration and file store configuration.
Copy the
master.key
from the first node to the additional nodes located at$JFROG_HOME/artifactory/var/etc/security/master.key.
For a node to join a cluster, the nodes must have the same database configuration and the master key.
Start the additional nodes.
Check the Artifactory 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
Node ID and IP
For Docker installations, verify that the host's IDshared.node.id
and IPshared.node.ip
are added to thesystem.yaml
.
If these are not manually added, they are automatically resolved as the container's hostname and IP, meaning other nodes and services will not be able to reach this instance.
Install a non-management node
By default, all Artifactory nodes in a cluster are installed as equal nodes, meaning they can be be used to manage the cluster. You also have the option of installing a node that does not have management capabilities.
Set the system.yaml
parameter taskaffinity
to none for a non-management node.
Add licenses according to your license type.
License Key
Option 1: Copy the
artifactory.cluster.license
file to the first node's configuration directory.cp artifactory.cluster.license $JFROG_HOME/artifactory/var/etc/artifactory/
This can also be done once you start Artifactory using:
Option 2: License Management in the UIManage Licenses
Option 3: Install License REST APIInstall License
Specifying multiple licenses
Whether in the Artifactory UI, using the REST API or in the artifactory.cluster.license
file, make sure that the licenses are separated by two newlines.
License Bucket
Applying a license bucket requires JFrog Mission Control.
Complete configuring and starting the first node.
Enable Mission Control microservice in Artifactory.
Apply your license Bucket Management in the UIManage Licenses
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.
Database
Artifactory comes with an embedded Derby Database out-of-the-box. 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