Installing Artifactory from a Linux archive involves manually downloading the compressed file, extracting it, and then configuring the extracted directories. While it doesn't use the operating system's native package manager for installation, Artifactory can still be configured to run as an OS-managed service (for example, using systemd).
Here you'll find step-by-step instructions for installing JFrog Artifactory with Linux Archive, covering both single-node and high-availability (HA) configurations.
Prerequisites
Confirm your OS is a JFrog-supported OS.
Before installing, run a preflight check using the
diagnosticUtilutility to confirm your VMs meet the minimum resource requirements.Configure your network to meet JFrog's network requirements.
For additional prerequisites like Java requirements, supported browsers, and so on, see:
Install Artifactory from Linux Archive
The following steps cover the installation process for both single-node and HA.
Create JFrog Home Directory and Set
JFROG_HOMEVariableCreate Dedicated Directory:
Create a dedicated directory for your JFrog installation. This can be any directory of your choice (for example,
/app/jfrog,/usr/local/jfrog, or a custom path).# Replace <path to your directory> with your chosen directory sudo mkdir -p <path to your directory> cd <path to your directory>
Set
JFROG_HOMEVariable:Set the
JFROG_HOMEenvironment variable to easily refer to this path in your terminal. This must match the directory you created in the previous step.# Replace <path to your directory> with your chosen directory export JFROG_HOME=<path to your directory>
For more information, see JFrog Product Directory Structure.
Download and Extract Artifactory Linux Archive
Download Artifactory Linux Archive:
To download a specific version, replace
[RELEASE]with the exact version number (for example,7.111.11) in the command below. The placeholders<pro|oss|cpp-ce>signify the different editions of JFrog Artifactory that you can choose to install.# Example for Artifactory Pro (replace with your desired version) curl -g -L -O -J 'https://releases.jfrog.io/artifactory/artifactory-pro/org/artifactory/pro/jfrog-artifactory-pro/[RELEASE]/jfrog-artifactory-pro-[RELEASE]-linux.tar.gz' # For example, to download Artifactory Pro 7.111.11 curl -g -L -O -J 'https://releases.jfrog.io/artifactory/artifactory-pro/org/artifactory/pro/jfrog-artifactory-pro/7.111.11/jfrog-artifactory-pro-7.11.11-linux.tar.gz'
Extract Linux Archive and Move:
Extract the downloaded
.tar.gzfile into your chosen$JFROG_HOMEdirectory. The extraction typically creates a directory likeartifactory-pro-[VERSION]inside. Move the contents of this extracted directory into a simplerartifactorydirectory within$JFROG_HOME.# Extract the downloaded Artifactory archive file. tar -xvf jfrog-artifactory-pro-7.111.11-linux.tar.gz # Move the extracted directory (for example, artifactory-pro-7.111.11) to a simpler 'artifactory' name. mv artifactory-pro-7.111.11 artifactory
Run Artifactory as a Service (Recommended for Production):
Artifactory provides a script to install it as a
systemdorinit.dservice, which is highly recommended for production environments to ensure proper startup and shutdown.Navigate to the
binDirectory:cd $JFROG_HOME/artifactory/app/bin
Run the Installation Script:
./installService.sh
This script will set up the necessary service files for Artifactory.
Set up Artifactory Database
Artifactory requires an external database for production. JFrog highly recommends using PostgreSQL for all products in the JFrog Platform, although Artifactory supports additional databases. For more information, see Database Configuration.
Configure Artifactory to Use PostgreSQL:
On each Artifactory node, edit
$JFROG_HOME/artifactory/var/etc/system.yamlto point Artifactory to your external database.shared: database: type: postgresql driver: org.postgresql.Driver url: jdbc:postgresql://<DB_SERVER_IP_OR_HOSTNAME>:5432/artifactory_db username: artifactory_user password: your_secure_passwordThe database configuration in
system.yamlmust be identical on all Artifactory nodes, and all nodes must have reliable network access to the single shared external database instance.Configure Other Supported Databases (Optional):
To utilize databases other than PostgreSQL, you'll need to set
shared.database.allowNonPostgresqltotruein yoursystem.yamland configure the database details. Here's an example for MySQL:shared: database: allowNonPostgresql: true type: mysql driver: com.mysql.jdbc.Driver url: jdbc:mysql://<your db url, for example: localhost:3306>/artdb?characterEncoding=UTF-8&elideSetAutoCommits=true&useSSL=false username: artifactory password: password
For more information about creating and configuring databases, see Set up Database.
Set up Supported Filestores
The filestore is where Artifactory physically stores the binaries.
Single-Node: A local filesystem is the default, but externalizing it (for example, to a dedicated volume) is recommended for easier management and potential migration.
High Availability (HA): A shared filestore is mandatory. This can be NFS, S3, Azure Blob Storage, Google Cloud Storage, or another supported object storage solution. All Artifactory nodes in the cluster must have unified and reliable network access to this single shared filestore.
For more information about configuring filestores, see Set up Filestore.
Start the First Artifactory Node
This step details the critical steps for starting Artifactory, especially for an HA cluster.
Note
For High Availability installations, it is crucial to ensure the first Artifactory node is fully up and running, and its generated
masterKeyis copied and its generatedmasterKeyis copied to all other nodes before starting any subsequent Artifactory services. Failure to do so will prevent the cluster from forming correctly and lead to startup failures.You have two main options for starting Artifactory:
Running it as an OS Service (recommended for production)
Running it as a Process (foreground or daemon)
Option 1: Start as an OS Service (Recommended for Production)
This method uses the service script installed in Step 3.
Run the following command to start the Artifactory service. On the first HA node, Artifactory will initialize the database and potentially generate the
master.keyif it doesn't already exist.# For systemd-based systems sudo systemctl start artifactory.service # For init.d-based systems sudo service artifactory start
Optionally, for
systemd, enable it to start on boot:sudo systemctl enable artifactory.service
Option 2: Run as a Process
You can run Artifactory as a foreground process or as a daemon process (runs in the background).
Once you are in the
$JFROG_HOME/artifactory/app/bin/directory, run Artifactory as followsTo run as a foreground process:
Run the following command:
./artifactoryctl
To run as a daemon process (in the background):
Run the following command:
./artifactoryctl start
Initial HA Setup and Licensing
After the first node is running, complete the initial setup and apply licenses for the entire cluster. This is a critical step to prevent service failures in subsequent nodes.
Access the Artifactory UI: Open your browser and go to
http://<SERVER_HOSTNAME>:8082/, replacing<SERVER_HOSTNAME>with your server's actual IP address or host name.Complete the Onboarding Wizard:
Change Default Admin Password: The default credentials are admin/password. Change this immediately.
Configure Base URL: Configure the Base URL.
Apply All Licenses: If you have an Artifactory HA license, apply the license keys for every node in your cluster now. Adding licenses for the entire cluster at this stage prevents issues with new nodes failing to start their front-end services.
Warning
If you are setting up an HA cluster, it is crucial to apply licenses for all nodes through the first node's UI. If you try to add new nodes to the cluster before applying their licenses, the new nodes' front-end microservices may fail to start with the following error message:
[jfrt] [WARN] ... - License is not installed.
Configure and Start Remaining HA Nodes
Once the licenses are applied and the first node is fully operational, you can configure and start the other nodes.
Configure
system.yamlfor HAEdit
$JFROG_HOME/artifactory/var/etc/system.yamlon each node.In the node section, set
haEnabledtotrue.taskAffinityset toanyindicates that all the nodes in the HA can act as primary nodes.
shared: node: haEnabled: true taskAffinity: anyEnsure the database section (as configured in Step 4) is also present and identical on all nodes.
Copy
master.keyto Other Nodes:Copy the
master.keyfile from$JFROG_HOME/artifactory/var/etc/security/of the first node to the identical path on all other nodes.Start Remaining Nodes for HA:
Once the
masterKeyis synchronized across all nodes, start the Artifactory service on the remaining nodes:# Using OS Service (recommended) # For systemd sudo systemctl start artifactory.service # For init.d sudo service artifactory start # OR # As a daemon process $JFROG_HOME/artifactory/app/bin/artifactoryctl start
Monitor Artifactory
To check the Artifactory status, run the following command:
If running as an OS Service:
Run the following command:
# For systemd sudo systemctl status artifactory.service # For init.d sudo service artifactory status
If running as a Process:
Once you are in the
$JFROG_HOME/artifactory/app/bin/directory, run the following command:./artifactoryctl check
To stop a process-managed Artifactory, run the following command:
./artifactoryctl stop
Access Artifactory UI
After you start a new Artifactory node, you can access its UI through one of the following methods:
Direct Access:
Open your browser and navigate to
http://<ARTIFACTORY_NODE_IP>:8082/.You must do this for each newly started Artifactory node.
Load Balancer Access:
The load balancer directs traffic to
http://<ARTIFACTORY_NODE_IP>:8082/on each of your HA nodes.Configure your load balancer to point to the IP addresses of all your Artifactory nodes. When you access the load balancer's URL, it will distribute your requests across the nodes in the cluster.