Install Artifactory on Debian

JFrog Installation & Setup Documentation

Content Type
Installation & Setup

Installing Artifactory on Debian, whether for a single-node setup or a High Availability (HA) configuration, is considered a native installation. This means that Artifactory can be installed directly on Debian using the operating system's native package management tools, specifically Advanced Package Tool (APT) and dpkg.

Here you will find step-by-step instructions for installing JFrog Artifactory on a Debian system, covering both single-node and high-availability (HA) configurations.

Prerequisites

Install Artifactory Debian Package

To install Artifactory correctly, you must have sudo privileges or be the root user for system-level operations, package installations, and file modifications.

The following steps cover the installation process for both single-node and HA.

  1. Set JFROG_HOME Variable

    For Debian, Artifactory installs and stores its data by default in /opt/jfrog. To refer to this path in your terminal, run the following command:

    export JFROG_HOME=/opt/jfrog

    For more information, see JFrog Product Directory Structure.

  2. Configure JFrog APT Repository and Install Artifactory

    This is the recommended method for installing Artifactory, as it simplifies updates.

    1. Determine Your Debian Distribution:

      Run one of the following commands to find your Debian distribution code name (for example, buster, bullseye, bookworm):

      lsb_release -c
      # OR
      cat /etc/os-release
    2. Add JFrog APT Repository:

      Replace {distribution} with the output from the previous step (for example, xenial).

      echo "deb https://releases.jfrog.io/artifactory/artifactory-pro-debs {distribution} main" | sudo tee -a /etc/apt/sources.list
    3. Add JFrog Public Key:

      This step verifies the authenticity of the packages.

      wget -qO - https://releases.jfrog.io/artifactory/api/v2/repositories/artifactory-pro-debs/keyPairs/primary/public | sudo apt-key add -
    4. Update APT Cache and Install Artifactory:

      First, make sure net-tools is installed, as a prerequisite. Then, update your package list and install Artifactory. Replace 7.111.11 with your desired Artifactory version.

      sudo apt-get install -y net-tools
      sudo apt-get update && sudo apt-get install jfrog-artifactory-pro=7.111.11
  3. Use .deb Package to Download and Install Artifactory (Optional)

    This method allows you to download and install a specific .deb package directly, which is an optional alternative.

    1. Download Artifactory Debian Package:

      Download the specific Artifactory Debian package you wish to install. To download a specific version, replace [RELEASE] with the exact version number (for example, 7.111.11) in the command below:

      # Example for Artifactory Pro
      curl -g -L -O -J 'https://releases.jfrog.io/artifactory/artifactory-pro-debs/pool/jfrog-artifactory-pro/jfrog-artifactory-pro-[RELEASE].deb'
      
      # For example, to download Artifactory Pro 7.111.11
      curl -g -L -O -J 'https://releases.jfrog.io/artifactory/artifactory-pro-debs/pool/jfrog-artifactory-pro/jfrog-artifactory-pro-7.111.11.deb'
    2. Ensure net-tools is Installed:

      sudo apt-get install -y net-tools
    3. Install .deb Package:

      Navigate to the directory where you downloaded the .deb package and install it using dpkg with root user privileges.

      # Example for Artifactory Pro
      sudo dpkg -i jfrog-artifactory-<pro|oss|cpp-ce>-<VERSION>.deb
      
      # For example, to install Artifactory Pro 7.111.11
      sudo dpkg -i jfrog-artifactory-pro-7.111.11.deb
  4. 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.

    1. Configure Artifactory to Use PostgreSQL:

      On each Artifactory node, edit $JFROG_HOME/artifactory/var/etc/system.yaml to 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_password

      The database configuration in system.yaml must be identical on all Artifactory nodes, and all nodes must have reliable network access to the single shared external database instance.

    2. Configure Other Supported Databases (Optional):

      To utilize databases other than PostgreSQL, you'll need to set shared.database.allowNonPostgresql to true in your system.yaml and 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.

  5. 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.

  6. Start the First Artifactory Node

    For Single-Node and HA: Start the first Artifactory service. This will initialize the database and, for HA setups, generate the master.key.

    sudo systemctl start artifactory.service
  7. 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.

    1. 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.

    2. 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.

  8. 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.

    1. Configure system.yaml for HA

      On each node, edit $JFROG_HOME/artifactory/var/etc/system.yaml on each node.

      • In the node section, set haEnabled to true.

      • taskAffinity set to any indicates that all the nodes in the HA can act as primary nodes.

      shared:
        node:
          haEnabled: true
          taskAffinity: any
      
    2. Copy master.key to Other Nodes:

      Copy the master.key file from $JFROG_HOME/artifactory/var/etc/security/ of the first node to the identical path on all other nodes.

    3. Ensure the database section (as configured in Step 4) is also present and identical on all nodes.

    4. Start Remaining Nodes for HA:

      Once the masterKey is synchronized across all nodes, start the Artifactory service on the remaining nodes:

      sudo systemctl start artifactory.service
  9. Monitor Artifactory

    To check the Artifactory status, run the following command:

    sudo systemctl status artifactory.service
    
  10. 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.