---
updatedAt: 2026-09-02T04:58:50.000Z
agentTools:
  siteIndex: https://docs.jfrog.com/llms.txt
  projectIndex: https://docs.jfrog.com/installation/llms.txt
---

# Artifactory Upgrade from Version 6.10.x to 7.x

Upgrade Artifactory from 6.10.x to 7.x following dedicated cross-major-version migration procedures.

The following table provides the version in 7.x you can upgrade from particular versions of 6.x.

| Upgrade from 6.x Version              | Upgrade to 7.x Version               |
| ------------------------------------- | ------------------------------------ |
| Artifactory version 6.23.21 and above | Artifactory version 7.21.3 and above |
| Artifactory version 6.23.15 and above | Artifactory version 7.17.5 and above |
| Artifactory version 6.23.13 and above | Artifactory version 7.16.0 and above |
| Artifactory version 6.23.7 and above  | Artifactory version 7.12.6 and above |
| Artifactory version 6.23.3 and above  | Artifactory version 7.11.x and above |
| Artifactory version 6.23.1 and above  | Artifactory version 7.10.x and above |
| Artifactory version 6.23.0 and above  | Artifactory version 7.10.x and above |
| Artifactory version 6.22.x and above  | Artifactory version 7.9.x and above  |
| Artifactory version 6.21.x and above  | Artifactory version 7.7.x and above  |
| Artifactory version 6.20.x and above  | Artifactory version 7.5.x and above  |
| Artifactory version 6.19.x and above  | Artifactory version 7.4.2 and above  |
| Artifactory version 6.18.x and above  | Artifactory version 7.3.2 and above  |
| Artifactory version 6.10.x to 6.17x   | Any version of Artifactory 7.x       |

Apart from the exceptions listed above, you can upgrade to any version of 7.x from any version from 6.10.x and above.

<Callout icon="⚠️" theme="warning">
  **Warning**

  If you use S3 as the filestore, before you upgrade from 6.23.28 and higher (6.23.28, 6.23.31, 6.23.33, 6.23.36, 6.23.37, 6.23.38) to version 7.x, provide the S3 credentials in a non-encrypted, plaintext format. Artifactory will no longer be able to decrypt the encrypted credentials due to change in the encryption algorithm in version 7.x. and fails to start after upgrade. The credentials are automatically encrypted after the upgrade.
</Callout>

### New Configuration Model in Artifactory 7.x

Artifactory 7.x introduces several new concepts that improve the installation and customization process. For example, a `system.yaml` file holds your configuration and customizations. Artifactory preserves your configuration during an upgrade.

### Admin Users After Upgrade

Artifactory 6.x has `access-admin` and `arti-admin` users for Access and Artifactory respectively. In Artifactory 7.x, a global `admin` user handles administration across services. The `access-admin` and `arti-admin` users are still kept during the upgrade process. You can safely delete these users after the upgrade.

Before you proceed, see [System Requirements](artifactory-system-requirements-and-platform-support) for information on supported platforms, supported browsers, and other requirements.

<Accordion title="Artifactory System Requirements" icon="fa-info-circle">
  Artifactory system requirements depend mainly upon the expected amount of active clients.

  | Number of Active Clients | Processor                                         | Memory                                            |
  | :----------------------- | :------------------------------------------------ | :------------------------------------------------ |
  | 0-20                     | 4 core CPU                                        | 6 GB                                              |
  | 20-100                   | 6 core CPU                                        | 12 GB                                             |
  | 100-200                  | 8 core CPU                                        | 18 GB                                             |
  | 200+                     | Contact [JFrog Support](mailto:support@jfrog.com) | Contact [JFrog Support](mailto:support@jfrog.com) |

  ## Operating Systems and Platform Support

  The following table lists the supported operating systems and their versions:

  | Product         | Debian     | RHEL     | Ubuntu              | Amazon Linux      | Windows Server   |
  | :-------------- | :--------- | :------- | :------------------ | :---------------- | :--------------- |
  | **Artifactory** | 11.x, 12.x | 8.x, 9.x | 20.04, 22.04, 24.04 | Amazon Linux 2023 | 2016, 2019, 2022 |

  <br />

  <Callout icon="📘" theme="info">
    **Note**

    Debian 12.x and Ubuntu 24.04 are supported from Artifactory 7.104 and Distribution 2.28.

    Windows 2022 is supported from Artifactory 7.125.
  </Callout>

  ## Supported Platforms

  The following table lists the supported platforms:

  <Table align={["left","left","left","left","left"]}>
    <thead>
      <tr>
        <th>
          Product
        </th>

        <th>
          x86-64
        </th>

        <th>
          ARM64
        </th>

        <th>
          Kubernetes
        </th>

        <th>
          OpenShift
        </th>
      </tr>
    </thead>

    <tbody>
      <tr>
        <td>
          **Artifactory**
        </td>

        <td>
          ![](https://files.readme.io/c71e6fa39c8e1d5e494b90df587cbf743b3dee9cc1b143eb314c34fb4b1ff066-uuid-ea92c1e1-5d79-3981-c8d5-5a5d13efa637.svg)
        </td>

        <td>
          ![](https://files.readme.io/c71e6fa39c8e1d5e494b90df587cbf743b3dee9cc1b143eb314c34fb4b1ff066-uuid-ea92c1e1-5d79-3981-c8d5-5a5d13efa637.svg)
        </td>

        <td>
          1.27+
        </td>

        <td>
          4.14+
        </td>
      </tr>
    </tbody>
  </Table>

  Installation on Kubernetes environments is through Helm Charts. Supported Helm version is Helm 3.17+.

  <Callout icon="✅" theme="okay">
    **Kubernetes Sizing Requirements**

    We have included YAML files with different sizing configurations for <Anchor label="Artifactory" target="_blank" href="https://github.com/jfrog/charts/tree/master/stable/artifactory/sizing">Artifactory</Anchor> , <Anchor label="Xray" target="_blank" href="https://github.com/jfrog/charts/tree/master/stable/xray/sizing">Xray</Anchor>, and <Anchor label="Distribution" target="_blank" href="https://github.com/jfrog/charts/tree/master/stable/distribution/sizing">Distribution</Anchor> in our GitHub pages. You can use these YAML files when you set up your cluster.
  </Callout>

  <Callout icon="📘" theme="info">
    **ARM64 Support for Container-Based Installations**

    Artifactory, Xray and Distribution supports installation on ARM64 architecture specifically through Helm and Docker installations. When deploying a product on an ARM64 platform, an external database must be set up as Artifactory does not support the bundled database for ARM64 installations. The appropriate ARM64 Container Image is automatically pulled during the Helm or Docker installation process.
  </Callout>

  ## Artifactory Database Requirements

  Artifactory supports the following databases:

  * **PostgreSQL**

  <Callout icon="✅" theme="okay">
    **Tip**

    JFrog highly recommends using PostgreSQL for all products in the JFrog Platform. For more information, see [Choose the right database](choose-the-right-database).
  </Callout>

  * **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 are not supported.

  ## Artifactory File Store

  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](filestore-configuration-landing).

  ### 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>`](file-system-binary-provider-template-configuration) 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.

  <Callout icon="📘" theme="info">
    **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.
  </Callout>

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

  <Table>
    <thead>
      <tr>
        <th>
          Microservice
        </th>

        <th>
          Port
        </th>
      </tr>
    </thead>

    <tbody>
      <tr>
        <td>
          Artifactory
        </td>

        <td>
          HTTP: 8081, 8091
        </td>
      </tr>

      <tr>
        <td>
          Frontend
        </td>

        <td>
          HTTP: 8070
        </td>
      </tr>

      <tr>
        <td>
          Access
        </td>

        <td>
          HTTP: 8040, 8015

          gRPC: 8045, 8016
        </td>
      </tr>

      <tr>
        <td>
          Topology
        </td>

        <td>
          HTTP: 8020

          gRPC: 8021
        </td>
      </tr>

      <tr>
        <td>
          One Model
        </td>

        <td>
          HTTP: 8071, 8074

          gRPC: 8072
        </td>
      </tr>

      <tr>
        <td>
          Metadata
        </td>

        <td>
          HTTP: 8086
        </td>
      </tr>

      <tr>
        <td>
          Router
        </td>

        <td>
          HTTP: 8082, 8046, 8049

          gRPC: 8047
        </td>
      </tr>

      <tr>
        <td>
          Observability
        </td>

        <td>
          HTTP: 8036

          gRPC: 8037
        </td>
      </tr>

      <tr>
        <td>
          Event
        </td>

        <td>
          HTTP:8061

          gRPC: 8062
        </td>
      </tr>

      <tr>
        <td>
          Mission Control
        </td>

        <td>
          HTTP: 8080
        </td>
      </tr>

      <tr>
        <td>
          JFConnect
        </td>

        <td>
          HTTP: 8030

          gRPC: 8035
        </td>
      </tr>

      <tr>
        <td>
          JFConfig
        </td>

        <td>
          HTTP: 8010
        </td>
      </tr>

      <tr>
        <td>
          Evidence
        </td>

        <td>
          HTTP: 8051
        </td>
      </tr>

      <tr>
        <td>
          Artifactory Federation Service (RTFS)
        </td>

        <td>
          HTTP: 8025

          gRPC: 8026
        </td>
      </tr>
    </tbody>
  </Table>
</Accordion>

The following upgrade methods are supported:

* [Artifactory version 6.x to 7.x Linux Archive Upgrade](upgrading-from-artifactory-version-6-10-x-onwards-to-7-x#artifactory-version-6x-to-7x-linux-archive-upgrade)
* [Artifactory version 6.x to 7.x upgrade with Docker](upgrading-from-artifactory-version-6-10-x-onwards-to-7-x#artifactory-version-6x-to-7x-upgrade-with-docker)
* [Artifactory version 6.x to 7.x upgrade with Docker Compose](upgrading-from-artifactory-version-6-10-x-onwards-to-7-x#artifactory-version-6x-to-7x-upgrade-with-docker-compose)
* [Artifactory version 6.x to 7.x upgrade using Docker Volumes](upgrading-from-artifactory-version-6-10-x-onwards-to-7-x#artifactory-version-6x-to-7x-upgrade-with-docker-compose)
* [Artifactory version 6.x to 7.x upgrade with RPM](upgrading-from-artifactory-version-6-10-x-onwards-to-7-x#artifactory-version-6x-to-7x-upgrade-with-rpm)
* [Artifactory version 6.x to 7.x upgrade with Debian](upgrading-from-artifactory-version-6-10-x-onwards-to-7-x#artifactory-version-6x-to-7x-upgrade-with-debian)
* [Artifactory version 6.x to 7.x upgrade with Helm](upgrading-from-artifactory-version-6-10-x-onwards-to-7-x#artifactory-version-6x-to-7x-upgrade-with-helm)
* [Artifactory version 6.x to 7.x upgrade in Windows](upgrading-from-artifactory-version-6-10-x-onwards-to-7-x#artifactory-version-6x-to-7x-upgrade-in-windows)

## Artifactory version 6.x to 7.x upgrade with Helm

Before you proceed, see [System Requirements](artifactory-system-requirements-and-platform-support) for information on supported platforms, supported browsers, and other requirements.

In addition, review the Helm Chart requirements.

###### Artifactory Upgrade from 6.x to 7.x

Upgrading from 6.x to 7.x requires a one-time migration process. Enable the migration in the `values.yaml` file:

```yaml
artifactory:
  migration:
    enabled: true
```

You can configure the migration timeout in extreme cases. The default value is sufficient for most migrations.

```yaml
artifactory:
  migration:
    enabled: true
    timeoutSeconds: 3600
```

###### Migrating the Master Key from Version 6.x to 7.x

Version 6.x only supports a master key with 16 hex (32 characters). If you set a master key using `openssl rand -hex 32` (64 characters) in 6.x, only the first 32 characters are used and the rest are ignored. When migrating from 6.x to 7.x, the first 32 characters are trimmed, so 7.x uses the same trimmed master key as 6.x. Do **not** pass `global.masterKey` during migration from 6.x to 7.x.

<Callout icon="⚠️" theme="warning">
  **Upgrading from 8.x to 11.x and Above Chart Versions**

  If you are upgrading from 8.x to 11.x and above chart versions, remember to delete the existing PostgreSQL statefulset **before** upgrading the chart due to breaking changes in PostgreSQL subchart.

  Run the following command.

  ```bash
  kubectl delete statefulsets <OLD_RELEASE_NAME>-postgresql
  ```

  Once you have a new chart version, you can upgrade your deployment.
</Callout>

### Single Node Upgrade

1. Use the following command to upgrade.

   ```bash
   helm upgrade artifactory --namespace artifactory jfrog/artifactory
   ```

2. If Artifactory was installed without providing a value to postgresql.postgresqlPassword (if the password was auto-generated), run the following command to get the current password.

   ```properties
   POSTGRES_PASSWORD=$(kubectl get secret -n <namespace> <myrelease>-postgresql -o jsonpath="{.data.postgresql-password}" | base64 --decode)
   ```

3. Upgrade the release by passing the previously auto-generated secret.

   ```bash
   helm upgrade <myrelease> jfrog/artifactory --set postgresql.postgresqlPassword=${POSTGRES_PASSWORD} --namespace <namespace>
   ```

   This applies any configuration changes on your existing deployment.

### HA Upgrade with the artifactory-ha chart

1. Use the following command to upgrade.

   ```bash
   helm upgrade artifactory-ha --namespace artifactory-ha jfrog/artifactory-ha
   ```

2. If Artifactory was installed without providing a value to `postgresql.postgresqlPassword` (if the password was auto-generated), run the following command to get the current password.

   ```properties
   POSTGRES_PASSWORD=$(kubectl get secret -n <namespace> <myrelease>-postgresql -o jsonpath="{.data.postgresql-password}" | base64 --decode)
   ```

3. Upgrade the release by passing the previously auto-generated secret.

   ```bash
   helm upgrade <myrelease> --namespace artifactory-ha jfrog/artifactory-ha --set postgresql.postgresqlPassword=${POSTGRES_PASSWORD}
   ```

   This applies any configuration changes on your existing deployment.

<br />

<Accordion
  title="Enable TLS 1.0 and 1.1 for connectivity with older databases in Helm Installations
"
  icon="fa-info-circle"
>
  Artifactory version 7.25.5 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:

  1. Create the following local directory.
  2. Download the  <Anchor label="java.security file" target="_blank" href="https://releases.jfrog.io/ui/repos/tree/General/installers%2FcustomJavaSecurityFile%2Fjava.security">java.security file</Anchor> that has TLS 1.0 and 1.1 enabled.
  3. Copy the java.security file to `java/configmap`.
  4. Run the following command to create a custom config map. For more information, refer to Using Config Maps.
  5. Pass the following custom config map to your Helm install. For more information, refer to Using Config Maps.
</Accordion>

## Artifactory version 6.x to 7.x upgrade with Docker Compose

Before you proceed, see [System Requirements](artifactory-system-requirements-and-platform-support) for information on supported platforms, supported browsers, and other requirements.

In addition, review the Docker requirements.

1. Stop and remove the current containers.

   **Upgrading from Docker run**

   ```bash
   docker stop artifactory
   docker rm -f artifactory
   ```

   **Upgrading from Docker Compose previously available in Bintray**

   ```bash
   docker stop artifactory postgresql  nginx
   docker rm -f artifactory postgresql  nginx
   ```

2. Extract the contents of the compressed archive and go to the extracted folder.

   ```bash
   tar -xvf jfrog-artifactory-<pro|oss|cpp-ce>-<version>-compose.tar.gz
   ```

<Callout icon="❗️" theme="error">
  **.env file included within the Docker-Compose archive**

  The .env file is used by  <a href="https://docs.docker.com/compose/environment-variables/#the-env-file" target="_blank">docker-compose</a> and is updated during installations and upgrades.

  Some operating systems do not display dot files by default. If you make any changes to the file, remember to backup before an upgrade.
</Callout>

3. Run the *config.sh* script to set up folders with the required ownership.

   ```bash
   ./config.sh
   ```

4. Check that the migration has completed successfully, by reviewing the following files:

   1. **migration log**: `$JFROG_HOME/artifactory/var/log/migration.log`
   2. `system.yaml` configuration: `$JFROG_HOME/artifactory/var/etc/system.yaml`. This newly created file will contain your current custom configurations in the new format.
   3. 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 as*  `docker-compose.yaml` *.*

5. Manage Artifactory using native Docker Compose commands.

   ```bash
   docker-compose -p rt-postgres -f 
   docker-compose-postgres-9-6-11v.yaml up -d
   docker-compose -p rt up -d
   docker-compose -p rt ps
   docker-compose -p rt down
   ```

6. Access Artifactory from your browser at: `http://SERVER_HOSTNAME:8082/ui/`.

   For example, on your local machine: <http://localhost:8082/ui/>

<Callout icon="⚠️" theme="warning">
  **Reverse Proxy Settings**

  If you had a reverse proxy or load balancer configured with Artifactory 6.x, create **a new reverse proxy configuration** and update your reverse proxy settings.

  You can generate a new configuration template by accessing the upgraded Artifactory server UI (by default [http://localhost:8082/ui/](http://localhost:8082/ui/)), navigate to

  Navigate to **Administration > Artifactory > General > HTTP Settings** to adjust your **Reverse Proxy Settings** and generate a new configuration template. See Reverse Proxy Settings.
</Callout>

7. Check Artifactory Log.

   ```bash
   tail -f $JFROG_HOME/artifactory/var/log/console.log
   ```

<Callout icon="⚠️" theme="warning">
  **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](/administration/docs/configuring-log-rotation-for-tomcat).
</Callout>

### Artifactory version 6.x to 7.x Docker Compose Upgrade Using Docker Volumes

1. Stop and remove the current Docker containers.

   ```bash
   docker stop artifactory postgresql
   docker rm -f artifactory postgresql
   ```
2. Extract the contents of the compressed archive and go to the extracted folder.

   ```bash
   tar -xvf jfrog-artifactory-<pro|oss|cpp-ce>-<version>-compose.tar.gz
   ```
3. Copy the `docker-compose-volumes.yaml` file to the extracted folder.

   ```bash
   cp templates/docker-compose-volumes.yaml docker-compose.yaml
   ```
4. Add the entry to the `.env` file.

   ```bash
   echo -e "JF_SHARED_NODE_IP=$(hostname -i)" >> .env
   echo -e "JF_SHARED_NODE_ID=$(hostname -s)" >> .env
   echo -e "JF_SHARED_NODE_NAME=$(hostname -s)" >> .env
   ```

   Avoid duplicating the entry in the `.env` file.
5. Remove the following env from the `docker-compose.yaml` file.

   ```yaml
   - JF_SHARED_DATABASE_TYPE=postgresql
   - JF_SHARED_DATABASE_USERNAME=artifactory
   - JF_SHARED_DATABASE_PASSWORD=password
   - JF_SHARED_DATABASE_URL=jdbc:postgresql://postgresql:5432/artifactory
   - JF_SHARED_DATABASE_DRIVER=org.postgresql.Driver
   ```

   Migration starts from within the container and a new `system.yaml` aligning to the migrated data from Artifactory 6.x is created. To leverage this process, remove the env here to ensure that the old connection details are taken from `system.yaml` because the ENV supercedes the `system.yaml` entries. You can also choose to update these environment values to the old connection details for the upgrade to be successful.
6. Manage Artifactory using the native Docker Compose commands.

   ```bash
   docker-compose -p rt up -d
   docker-compose -p rt ps
   docker-compose -p rt down
   ```

   Run this command from the extracted folder.

<br />

<Accordion title="Enable TLS 1.0 and 1.1 for connectivity with older databases" icon="fa-info-circle">
  Artifactory version 7.25.5 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:

  1. Download the  <Anchor label="java.security file" target="_blank" href="https://releases.jfrog.io/ui/repos/tree/General/installers%2FcustomJavaSecurityFile%2Fjava.security">java.security file</Anchor> that has TLS 1.0 and 1.1 enabled.
  2. Create the directory, `${JFROG_HOME}/artifactory/var/bootstrap/artifactory/java`.

     ```
     mkdir -p ${JFROG_HOME}/artifactory/var/bootstrap/artifactory/java
     ```
  3. Copy the `java.security` file into `${JFROG_HOME}/artifactory/var/bootstrap/artifactory/java.`
  4. Provide the appropriate permissions to the directory.

     ```
     chmod 755 ${JFROG_HOME}/artifactory/var/bootstrap/artifactory/java/java.security
     ```

     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.
</Accordion>

## Artifactory version 6.x to 7.x upgrade with Docker

Before you proceed, see [System Requirements](artifactory-system-requirements-and-platform-support) for information on supported platforms, supported browsers, and other requirements.

In addition, review the Docker requirements.

<Callout icon="📘" theme="info">
  **Note**

  The Docker upgrade only applies when upgrading from Artifactory 6.x to Artifactory 7.4.1 and above.
</Callout>

1. Stop and remove Artifactory using native Docker commands.

   ```bash
   docker stop artifactory
   docker rm -f artifactory
   ```
2. Set the path to your current Artifactory home and verify the directory permissions are set correctly.

   ```bash
   export ARTIFACTORY_HOME=<Mount Path to your current Artifactory data directory>
   chown -R 1030:1030 $ARTIFACTORY_HOME
   ```
3. Start the Artifactory container

   ```bash
   docker run -e ENABLE_MIGRATION=y --name artifactory -v   $ARTIFACTORY_HOME:/var/opt/jfrog/artifactory -d -p 8081:8081 -p 8082:8082 releases-docker.jfrog.io/jfrog/artifactory-<pro|oss|cpp-ce>:latest
   ```
4. Access Artifactory from your browser at: `http://SERVER_HOSTNAME:8082/ui/`.

   For example, on your local machine: `http://localhost:8082/ui/`.
5. Check Artifactory Log.

   ```bash
   docker logs -f artifactory
   ```

<br />

<Accordion title="Enable TLS 1.0 and 1.1 for connectivity with older databases" icon="fa-info-circle">
  Artifactory version 7.25.5 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:

  1. Download the  <Anchor label="java.security file" target="_blank" href="https://releases.jfrog.io/ui/repos/tree/General/installers%2FcustomJavaSecurityFile%2Fjava.security">java.security file</Anchor> that has TLS 1.0 and 1.1 enabled.
  2. Create the directory, `${JFROG_HOME}/artifactory/var/bootstrap/artifactory/java`.

     ```
     mkdir -p ${JFROG_HOME}/artifactory/var/bootstrap/artifactory/java
     ```
  3. Copy the `java.security` file into `${JFROG_HOME}/artifactory/var/bootstrap/artifactory/java.`
  4. Provide the appropriate permissions to the directory.

     ```
     chmod 755 ${JFROG_HOME}/artifactory/var/bootstrap/artifactory/java/java.security
     ```

     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.
</Accordion>

## Artifactory version 6.x to 7.x upgrade with RPM

Before you proceed, see [System Requirements](artifactory-system-requirements-and-platform-support) for information on supported platforms, supported browsers, and other requirements.

1. Stop the current server.

   ```bash
   service artifactory stop
   ```

2. Install Artifactory as a service on Red Hat compatible Linux distributions, as a root user.

   ```bash
   yum -y install jfrog-artifactory-<pro|oss|cpp-ce>-<version>
   ```

3. Check that the migration has completed successfully, by reviewing the following files:

   1. **migration log**: `$JFROG_HOME/artifactory/var/log/migration.log`
   2. `system.yaml` **configuration**: `$JFROG_HOME/artifactory/var/etc/system.yaml`

      This newly created file contains your current custom configurations in the new format.

4. Manage Artifactory.

   ```bash
   service artifactory start|stop
   ```

5. Access Artifactory from your browser at: `http://SERVER_HOSTNAME:8082/ui/`.

   For example, on your local machine: <http://localhost:8082/ui/>

<Callout icon="⚠️" theme="warning">
  **Reverse Proxy Settings**

  If you had a reverse proxy or load balancer configured with Artifactory 6.x, create **a new reverse proxy configuration** and update your reverse proxy settings.

  You can generate a new configuration template by accessing the upgraded Artifactory server UI (by default [http://localhost:8082/ui/](http://localhost:8082/ui/)), navigate to

  Navigate to **Administration > Artifactory > General > HTTP Settings** to adjust your **Reverse Proxy Settings** and generate a new configuration template. See Reverse Proxy Settings.
</Callout>

6. Check Artifactory Log.

   ```bash
   tail -f $JFROG_HOME/artifactory/var/log/console.log
   ```

<Callout icon="⚠️" theme="warning">
  **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](/administration/docs/configuring-log-rotation-for-tomcat).
</Callout>

<br />

<Accordion title="Enable TLS 1.0 and 1.1 for connectivity with older databases" icon="fa-info-circle">
  Artifactory version 7.25.5 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:

  1. Download the  <Anchor label="java.security file" target="_blank" href="https://releases.jfrog.io/ui/repos/tree/General/installers%2FcustomJavaSecurityFile%2Fjava.security">java.security file</Anchor> that has TLS 1.0 and 1.1 enabled.
  2. Create the directory, `${JFROG_HOME}/artifactory/var/bootstrap/artifactory/java`.

     ```
     mkdir -p ${JFROG_HOME}/artifactory/var/bootstrap/artifactory/java
     ```
  3. Copy the `java.security` file into `${JFROG_HOME}/artifactory/var/bootstrap/artifactory/java.`
  4. Provide the appropriate permissions to the directory.

     ```
     chmod 755 ${JFROG_HOME}/artifactory/var/bootstrap/artifactory/java/java.security
     ```

     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.
</Accordion>

## Artifactory version 6.x to 7.x upgrade with Debian

Before you proceed, see [System Requirements](artifactory-system-requirements-and-platform-support) for information on supported platforms, supported browsers, and other requirements.

1. Stop the current server.

   ```bash
   service artifactory stop
   ```

2. Install Artifactory as a service on a Debian-compatible Linux distribution, as a root user.

   ```bash
   dpkg -i jfrog-artifactory-<pro|oss|cpp-ce>-<version>.deb
   ```

3. Check that the migration has completed successfully, by reviewing the following files:

   1. **migration log**: `$JFROG_HOME/artifactory/var/log/migration.log`
   2. `system.yaml` **configuration**: `$JFROG_HOME/artifactory/var/etc/system.yaml`

      This newly created file contains your current custom configurations in the new format.

4. Manage Artifactory.

   ```bash
   service artifactory start|stop
   ```

5. Access Artifactory from your browser at: `http://SERVER_HOSTNAME:8082/ui/`.

   For example, on your local machine: <http://localhost:8082/ui/>

<Callout icon="⚠️" theme="warning">
  **Reverse Proxy Settings**

  If you had a reverse proxy or load balancer configured with Artifactory 6.x, create **a new reverse proxy configuration** and update your reverse proxy settings.

  You can generate a new configuration template by accessing the upgraded Artifactory server UI (by default [http://localhost:8082/ui/](http://localhost:8082/ui/)), navigate to

  Navigate to **Administration > Artifactory > General > HTTP Settings** to adjust your **Reverse Proxy Settings** and generate a new configuration template. See Reverse Proxy Settings.
</Callout>

6. Check Artifactory Log.

   ```bash
   tail -f $JFROG_HOME/artifactory/var/log/console.log
   ```

<Callout icon="⚠️" theme="warning">
  **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](/administration/docs/configuring-log-rotation-for-tomcat).
</Callout>

<br />

<Accordion title="Enable TLS 1.0 and 1.1 for connectivity with older databases" icon="fa-info-circle">
  Artifactory version 7.25.5 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:

  1. Download the  <Anchor label="java.security file" target="_blank" href="https://releases.jfrog.io/ui/repos/tree/General/installers%2FcustomJavaSecurityFile%2Fjava.security">java.security file</Anchor> that has TLS 1.0 and 1.1 enabled.
  2. Create the directory, `${JFROG_HOME}/artifactory/var/bootstrap/artifactory/java`.

     ```
     mkdir -p ${JFROG_HOME}/artifactory/var/bootstrap/artifactory/java
     ```
  3. Copy the `java.security` file into `${JFROG_HOME}/artifactory/var/bootstrap/artifactory/java.`
  4. Provide the appropriate permissions to the directory.

     ```
     chmod 755 ${JFROG_HOME}/artifactory/var/bootstrap/artifactory/java/java.security
     ```

     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.
</Accordion>

## Artifactory version 6.x to 7.x Linux Archive Upgrade

Before you proceed, see [System Requirements](artifactory-system-requirements-and-platform-support) for information on supported platforms, supported browsers, and other requirements.

Migration is a manual process. The following steps also include copying directories over and running the migration script.

Run all commands on the server as the user that runs Artifactory.

1. Stop the current server.

   ```bash
   cd $ARTIFACTORY_HOME/bin
   ./artifactoryctl stop
   ```

2. Extract the contents of the compressed archive and move it into artifactory directory.

   ```bash
   tar -xvf jfrog-artifactory-<pro|oss|cpp-ce>-<version>-linux.tar.gz
   mkdir jfrog
   mv artifactory-<pro|oss|cpp-ce>-<version> jfrog/artifactory
   ```

3. Set your `ARTIFACTORY_HOME` and `JFROG_HOME` variables.

   ```bash
   export ARTIFACTORY_HOME=<Path to your current Artifactory installation>
   export JFROG_HOME=<Full path to jfrog directory, for example: /opt/jfrog>
   export JF_PRODUCT_HOME=$JFROG_HOME/artifactory
   ```

   The `$ARTIFACTORY_HOME`variable points to your existing installation, and the `$JFROG_HOME` variable points to the new installation.

4. Copy the directories from your current to the new path.

   **Mandatory Directories**

   ```bash
   # Artifactory data
   mkdir -p $JFROG_HOME/artifactory/var/data/artifactory/
   cp -rp $ARTIFACTORY_HOME/data/. $JFROG_HOME/artifactory/var/data/artifactory/
    
   # Access data
   mkdir -p $JFROG_HOME/artifactory/var/data/access/
   cp -rp $ARTIFACTORY_HOME/access/data/. $JFROG_HOME/artifactory/var/data/access/
    
    
   # Artifactory config
   mkdir -p $JFROG_HOME/artifactory/var/etc/artifactory/
   cp -rp $ARTIFACTORY_HOME/etc/. $JFROG_HOME/artifactory/var/etc/artifactory/
    
   # Access config
   mkdir -p $JFROG_HOME/artifactory/var/etc/access/
   cp -rp $ARTIFACTORY_HOME/access/etc/. $JFROG_HOME/artifactory/var/etc/access/
     
   # master.key
   mkdir -p $JFROG_HOME/artifactory/var/etc/security/
   cp -p $ARTIFACTORY_HOME/etc/security/master.key $JFROG_HOME/artifactory/var/etc/security/master.key
    
   # server.xml
   mkdir -p $JFROG_HOME/artifactory/var/work/old
   cp -p $ARTIFACTORY_HOME/tomcat/conf/server.xml $JFROG_HOME/artifactory/var/work/old/server.xml
    
   # artifactory.defaults
   cp -rp $ARTIFACTORY_HOME/bin/artifactory.default $JFROG_HOME/artifactory/var/work/old/artifactory.default
   #or, if Artifactory was installed a service
   cp -rp $ARTIFACTORY_HOME/etc/default $JFROG_HOME/artifactory/var/work/old/artifactory.default
    
   # External database driver, for example: mysql-connector-java-<version>.jar
   mkdir -p $JFROG_HOME/artifactory/var/bootstrap/artifactory/tomcat/lib
   cp -rp $ARTIFACTORY_HOME/tomcat/lib/<your database driver> $JFROG_HOME/artifactory/var/bootstrap/artifactory/tomcat/lib/<your database driver>
    
   # Remove logback.xml with old links. Please consider migrating manually anything that is customized here
   rm -f $JFROG_HOME/artifactory/var/etc/artifactory/logback.xml
   rm -f $JFROG_HOME/artifactory/var/etc/access/logback.xml
    
   # Move Artifactory logs
   mkdir -p $JFROG_HOME/artifactory/var/log/archived/artifactory/
   cp -rp $ARTIFACTORY_HOME/logs/. $JFROG_HOME/artifactory/var/log/archived/artifactory/
    
   # Move configuration files
   # Note: Run the following only when upgrading from Artifactory version 6.x to version 7.5.x and above.
   mkdir -p $JFROG_HOME/artifactory/var/etc/artifactory/old
   mkdir -p $JFROG_HOME/artifactory/var/etc/access/old
   cp $JFROG_HOME/artifactory/var/etc/artifactory/db.properties  $JFROG_HOME/artifactory/var/etc/artifactory/old/db.properties
   cp $JFROG_HOME/artifactory/var/etc/artifactory/ha-node.properties  $JFROG_HOME/artifactory/var/etc/artifactory/old/ha-node.properties
   cp $JFROG_HOME/artifactory/var/etc/access/db.properties   $JFROG_HOME/artifactory/var/etc/access/old/db.properties
   ```

   **Additional directories for HA**

   Replace any relative paths in the`$ARTIFACTORY_HOME/etc/ha-node.properties`file with absolute paths.

   ```bash
   # relative path
   artifactory.ha.data.dir=artifactory-ha
   # absolute path
   artifactory.ha.data.dir=/var/opt/jfrog/artifactory-ha
   ```

   **Optional Steps**

   ```bash
   # Artifactory backup (optional)
   mkdir -p $JFROG_HOME/artifactory/var/backup/artifactory/
   cp -rp $ARTIFACTORY_HOME/backup/. $JFROG_HOME/artifactory/var/backup/artifactory/
    
   # Access backup (optional)
   mkdir -p $JFROG_HOME/artifactory/var/backup/access/
   cp -rp $ARTIFACTORY_HOME/access/data/. $JFROG_HOME/artifactory/var/backup/access/

   # Access logs (optional)
   mkdir -p $JFROG_HOME/artifactory/var/log/archived/access/
   cp -rp $ARTIFACTORY_HOME/access/logs/. $JFROG_HOME/artifactory/var/log/archived/access/
   ```

<Callout icon="⚠️" theme="warning">
  **Warning**

  When you upgrade Artifactory using Linux Archive, verify that the copied directories and the copied content have the right owners.

  If you are using the default _user:group_, the owner is automatically assigned _artifactory:artifactory_ and no further action is needed (the upgrade uses these by default).

  If you are using a custom _user:group_, update the Artifactory `system.yaml` file with the custom _user:group_, then verify that the directory has the same user and group.
</Callout>

5. Run the migration script with the same privileges as you have in your current Artifactory installation.

   The script copies and translates your current configurations to the new configuration format based on the new file system layout.

   ```bash
   cd $JFROG_HOME/artifactory/app/bin
   ./migrate.sh
   ```

   The migration script only migrates configuration values. Any comments added to the configuration files in the Artifactory 6.x installation are not migrated.

6. Check that the migration has completed successfully, by reviewing the following files.

   **`migration.log`**: `$JFROG_HOME/artifactory/var/log/migration.log`

   **`system.yaml`**: `$JFROG_HOME/artifactory/var/etc/system.yaml`  This newly created file contains your current custom configurations in the new format.

7. If Artifactory was previously installed as a service, install this version as a service as well.

   ```bash
   cd $JFROG_HOME/artifactory/app/bin
   ./installService.sh
   ```

   Otherwise, a server restart may start the older version of Artifactory.

8. Manage Artifactory.

   ```bash
   $JFROG_HOME/artifactory/app/bin/artifactoryctl start|stop|check
   ```

9. Access Artifactory from your browser at: `http://SERVER_HOSTNAME:8082/ui/`.

   For example, on your local machine: <http://localhost:8082/ui/>

<Callout icon="⚠️" theme="warning">
  **Reverse Proxy Settings**

  If you had a reverse proxy or load balancer configured with Artifactory 6.x, create **a new reverse proxy configuration** and update your reverse proxy settings.

  You can generate a new configuration template by accessing the upgraded Artifactory server UI (by default [http://localhost:8082/ui/](http://localhost:8082/ui/)), navigate to

  Navigate to **Administration > Artifactory > General > HTTP Settings** to adjust your **Reverse Proxy Settings** and generate a new configuration template. See Reverse Proxy Settings.
</Callout>

10. Check Artifactory Log.

    ```bash
    tail -f $JFROG_HOME/artifactory/var/log/console.log
    ```

<Callout icon="⚠️" theme="warning">
  **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](/administration/docs/configuring-log-rotation-for-tomcat).
</Callout>

## Artifactory version 6.x to 7.x upgrade in Windows

Before you proceed, see [System Requirements](artifactory-system-requirements-and-platform-support) for information on supported platforms, supported browsers, and other requirements.

Migration is a manual process for a Windows installation. The following steps also include copying directories over and running the migration script.

Run all commands on the server as the user that runs Artifactory.

1. Stop the current server.

   ```bash
   cd %ARTIFACTORY_HOME%\bin
   artifactory.bat stop
   ```

   If you are running the Artifactory service as a process, stop the service from Services. Press the Windows key +R and enter `services.msc` to access Services.

2. Extract the contents of the compressed archive, move it into a newly created jfrog\artifactory folder, and go to the new folder.

   Run all commands on the server as the user that runs Artifactory.

3. Set your `ARTIFACTORY_HOME` and `JFROG_HOME` variables.

   ```xml
   SET ARTIFACTORY_HOME=<Path to your current Artifactory installation>
   SET JFROG_HOME=<Path to jfrog folder>
   SET JF_PRODUCT_HOME=%JFROG_HOME%/artifactory
   ```

   The `$ARTIFACTORY_HOME` variable points to your existing installation, and the `$JFROG_HOME` variable points to the new installation.

   When setting the `ARTIFACTORY_HOME` and `JFROG_HOME` variables, use Windows short names or escape spaces. For more information, see <a href="https://en.wikipedia.org/wiki/8.3_filename" target="_blank">here</a>.

4. Copy the directories from your current to the new path. Ignore if the target directory exists.

   ###### Mandatory Steps

   ```bash
   # Artifactory data
    
   mkdir %JFROG_HOME%\artifactory\var\data\artifactory
   xcopy %ARTIFACTORY_HOME%\data %JFROG_HOME%\artifactory\var\data\artifactory /E /q
     
   # Access data
   mkdir %JFROG_HOME%\artifactory\var\data\access
   xcopy %ARTIFACTORY_HOME%\access\data %JFROG_HOME%\artifactory\var\data\access /E /q
      
   # Artifactory config
   mkdir %JFROG_HOME%\artifactory\var\etc\artifactory
   xcopy %ARTIFACTORY_HOME%\etc %JFROG_HOME%\artifactory\var\etc\artifactory /E /q
     
   # Access config
   mkdir %JFROG_HOME%\artifactory\var\etc\access
   xcopy %ARTIFACTORY_HOME%\access\etc %JFROG_HOME%\artifactory\var\etc\access /E /q
      
   # master.key
   mkdir %JFROG_HOME%\artifactory\var\etc\security
   xcopy %ARTIFACTORY_HOME%\etc\security\master.key %JFROG_HOME%\artifactory\var\etc\security /q
     
   # server.xml
   mkdir %JFROG_HOME%\artifactory\var\work\old
   xcopy %ARTIFACTORY_HOME%\tomcat\conf\server.xml %JFROG_HOME%\artifactory\var\work\old /q
     
   # External database driver, for example: mysql-connector-java-<version>.jar
   xcopy %ARTIFACTORY_HOME%\tomcat\lib\<your database driver> %JFROG_HOME%\artifactory\app\artifactory\tomcat\lib /q
    
   # Change ownership of new Artifactory directory to the user intended to run Artifactory.
   # This can be skipped if you performed all previous steps with the user intended to run Artifactory.
    
   # Remove logback.xml with old links. Please consider migrating manually anything that is customized here
   del %JFROG_HOME%\artifactory\var\etc\artifactory\logback.xml
   del %JFROG_HOME%\artifactory\var\etc\access\logback.xml
    
   # Move configuration files
   # Note: Run the following only when upgrading from Artifactory version 6.x to version 7.5.x and above.
   mkdir %JFROG_HOME%\artifactory\var\etc\artifactory\old
   mkdir %JFROG_HOME%\artifactory\var\etc\access\old
    
   move /Y %JFROG_HOME%\artifactory\var\etc\artifactory\db.properties %JFROG_HOME%\artifactory\var\etc\artifactory\old\db.properties
   move /Y %JFROG_HOME%\artifactory\var\etc\artifactory\ha-node.properties %JFROG_HOME%\artifactory\var\etc\artifactory\old\ha-node.properties
   move /Y %JFROG_HOME%\artifactory\var\etc\access\db.properties  %JFROG_HOME%\artifactory\var\etc\access\old\db.properties
   ```

   ###### Optional Steps

   ```bash
   # Artifactory backup (optional)
    
   mkdir %JFROG_HOME%\artifactory\var\backup\artifactory
   xcopy %ARTIFACTORY_HOME%\backup %JFROG_HOME%\artifactory\var\backup\artifactory /E /q
     
   # Access backup (optional)
   mkdir %JFROG_HOME%\artifactory\var\backup\access
   xcopy %ARTIFACTORY_HOME%\access\backup %JFROG_HOME%\artifactory\var\backup\access /E /q
     
   # Artifactory logs (optional)
   mkdir %JFROG_HOME%\artifactory\var\log\artifactory
   xcopy %ARTIFACTORY_HOME%\logs %JFROG_HOME%\artifactory\var\log\artifactory /E /q
     
   # Access logs (optional)
   mkdir %JFROG_HOME%\artifactory\var\log\access
   xcopy %ARTIFACTORY_HOME%\access\logs %JFROG_HOME%\artifactory\var\log\access /E /q
     
   # Copy specific files from your current to the new path.
   ```

5. **For HA installations**, replace any relative paths in the %*ARTIFACTORY\_HOME%\etc\_\_ha-node.properties* file with absolute paths.

   ```bash
   # relative path
   artifactory.ha.data.dir=artifactory-ha
   # absolute path
   artifactory.ha.data.dir=\var\opt\jfrog\artifactory-ha
   ```

6. Run the migration script with the same privileges as your current Artifactory installation. This script copies and translates your current configurations to the new configuration format based on the new file system layout.

   ```bash
   cd %JFROG_HOME%\artifactory\app\bin
   migrate.bat
   ```

<Callout icon="⚠️" theme="warning">
  **Warning**

  The migration script only migrates configuration values. Comments added to configuration files in the Artifactory 6.x installation are not migrated.
</Callout>

7. Check that the migration has completed successfully, by reviewing the following files.

   1. **`migration log`**: `%JFROG_HOME%\artifactory\var\log\migration.log`
   2. `system.yaml` configuration: `%JFROG_HOME%\artifactory\var\etc\system.yaml`

      This newly created file contains your current custom configurations in the new format.

8. Manage Artifactory.

   ```bash
   %JFROG_HOME%\artifactory\app\bin\artifactory.bat start|stop
   ```

<Callout icon="📘" theme="info">
  **Note**

  When you start Artifactory, you may get some firewall exception messages. Select private networks and allow access to continue working.
</Callout>

9. To install Artifactory as a Windows service, follow the steps here.

10. Access Artifactory from your browser at: `http://SERVER_HOSTNAME:8082/ui/`.

    For example, on your local machine: <http://localhost:8082/ui/>

<Callout icon="⚠️" theme="warning">
  **Reverse Proxy Settings**

  If you had a reverse proxy or load balancer configured with Artifactory 6.x, create **a new reverse proxy configuration** and update your reverse proxy settings.

  You can generate a new configuration template by accessing the upgraded Artifactory server UI (by default [http://localhost:8082/ui/](http://localhost:8082/ui/)), navigate to

  Navigate to **Administration > Artifactory > General > HTTP Settings** to adjust your **Reverse Proxy Settings** and generate a new configuration template. See Reverse Proxy Settings.
</Callout>

11. Check the `artifactory-service.log`.

    ```text
    type %JFROG_HOME%\artifactory\var\log\artifactory-service.log
    ```

<br />

<Accordion title="Enable TLS 1.0 and 1.1 for connectivity with older databases" icon="fa-info-circle">
  Artifactory version 7.25.5 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:

  1. Download the  <Anchor label="java.security file" target="_blank" href="https://releases.jfrog.io/ui/repos/tree/General/installers%2FcustomJavaSecurityFile%2Fjava.security">java.security file</Anchor> that has TLS 1.0 and 1.1 enabled.
  2. Create the directory, `${JFROG_HOME}/artifactory/var/bootstrap/artifactory/java`.

     ```
     mkdir -p ${JFROG_HOME}/artifactory/var/bootstrap/artifactory/java
     ```
  3. Copy the `java.security` file into `${JFROG_HOME}/artifactory/var/bootstrap/artifactory/java.`
  4. Provide the appropriate permissions to the directory.

     ```
     chmod 755 ${JFROG_HOME}/artifactory/var/bootstrap/artifactory/java/java.security
     ```

     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.
</Accordion>

## Metadata Migration in the JFrog Platform

The JFrog Metadata server is a JFrog Platform microservice that is used for storing, managing, and sharing metadata between different components of the JFrog Platform. The microservice is part of JFrog Artifactory and is bundled with JFrog Artifactory 7.x installations. The microservice is used to store and share **metadata for all packages from any JFrog services**, such as Artifactory and JFrog Xray, and has its own configuration settings and logs files.

When upgrading from one version of Artifactory to another, metadata is also migrated. The duration varies depending on the number of packages and versions being migrated.

<Callout icon="📘" theme="info">
  **Note**

  This migration occurs automatically when upgrading from JFrog Artifactory 6.x to 7.x and requires no user action.
</Callout>

#### Fetching Metadata Using GraphQL

GraphQL is a query language that enables you to query your APIs and fetch specific data you need. Using GraphQL to query metadata provides a simple way to fetch packages data stored in the metadata microservice. To learn more, see [GraphQL](/integrations/docs/jfrog-one-model-graphql).

#### Viewing Metadata in the JFrog Platform UI

The Metadata server stores metadata, collected or calculated, from all the different JFrog products and services.

The Metadata data-model is used to manage the package-versions metadata, which can be consumed using various filters and search options through the JFrog platform UI - "Packages View". To learn more, see [Package Management](/artifactory/docs/working-with-package-management).

<Accordion title="Frequently Asked Questions on Metadata Migration" icon="plus">

##### Q: What happens to the UI during the migration?

**A:** When the migration takes place, the JFrog Platform UI displays a notification that the metadata is currently being migrated.

##### Q: What happens if the migration stops in the middle?

**A:** The migration will continue from the same point the next time Artifactory is started.

##### Q: Does the migration happen during or after the upgrade?

**A:** The migration occurs after the upgrade, and will be triggered on the first system initialization after the upgrade (the first time you start Artifactory v7.x).

##### Q: Is there any downtime during migration?

**A:** JFrog tested the migration process using a benchmark of Artifactory of 27k packages and 1.2M versions:

* Artifactory ran with the default migration configurations (5 threads migrating to MDS).
* The Artifactory and a PostgreSQL database were run on different machines with the following spec - GCP VM with 8 CPU & 30 Gb RAM.

##### Q: Does the migration cause downtime?

**A:** There is no downtime caused by the migration, however, search results in the UI and in the GraphQL API will be limited.

##### Q: How long will the migration take and what is the rate of conversion?

**A:** Based on the benchmark above, the migration rate was 60k-67k versions per hour. The total migration using these specifications took between 18-22 hours.

</Accordion>

#### Database Details

##### Database Connections

The Metadata service uses a database connection pool that by default contains 100 connections. Running Artifactory with the default MDS migration settings (5 threads migrating metadata), no significant raise in the active connections to the database (about 10 live connections) were detected.In the worst case, the number of connections will not pass 100 connections.

##### CPU

* The PostgreSQL CPU max value was 60%.
* The MDS CPU max value was 23%

##### RAM

* The PostgreSQL RAM consumption was about 5%
* The MDS RAM consumption was about 10%

##### Storage

The database size increased from 95GB to 155GB (\~60% increase).

#### Managing the Metadata Migration Process

Customers can control the metadata migration by limiting the number of threads in Artifactory (threads`<=`1 means that the migration is off):

```bash
shared.extraJavaOpts
-Dartifactory.metadata.event.operator.threads=5
```

**PostgreSQL**: To check the migration status, query the PostgreSQL database as follows.

```sql
SELECT encode(
           migration_info_blob::bytea, 
           'escape'
       ) 
FROM migration_status 
WHERE identifier = 'metadata-service-migration';
```

**Oracle DB:** To check the migration status, query the Oracle database as follows:

```sql
SELECT UTL_RAW.CAST_TO_VARCHAR2(
           DBMS_LOB.SUBSTR(migration_info_blob)
       ) 
FROM migration_status 
WHERE identifier = 'metadata-service-migration';
```

## Related Topics

* [Artifactory Upgrade](upgrading-artifactory)
* [Products Upgrade](upgrade)
* [Artifactory Helm Upgrade](upgrade-helm-charts)
* [Artifactory Docker Upgrade](upgrade-docker)
* [Artifactory Linux Package Upgrade](upgrade-linux-package)
* [System Requirements](artifactory-system-requirements-and-platform-support)

## Frequently Asked Questions

This section provides answers to frequently asked questions.

<Accordion title="FAQs" icon="plus">

##### Q: Which 6.x version do I need before upgrading to 7.x?

**A:** You must be on Artifactory 6.10.x or above to upgrade to 7.x. If you are on a version below 6.10.x, first upgrade to 6.10.x or any later 6.x version, then proceed with the 6.x to 7.x upgrade.

##### Q: What happens to my existing configuration during the upgrade?

**A:** Artifactory preserves your configuration during the upgrade. The migration script copies and translates your current configurations to the new `system.yaml` format. You can verify the result by reviewing `$JFROG_HOME/artifactory/var/etc/system.yaml` after the upgrade completes.

##### Q: Do I need to update my reverse proxy configuration after upgrading?

**A:** Yes. If you had a reverse proxy or load balancer configured with Artifactory 6.x, you must create a new reverse proxy configuration after the upgrade. Access the upgraded Artifactory UI at `http://localhost:8082/ui/`, then navigate to **Administration > Artifactory > General > HTTP Settings** to generate a new configuration template.

##### Q: What happens to the `access-admin` and `arti-admin` users after the upgrade?

**A:** These 6.x admin users are retained during the upgrade process. In Artifactory 7.x, a global `admin` user handles administration across services. You can safely delete `access-admin` and `arti-admin` after the upgrade.

##### Q: How do I verify the migration completed successfully?

**A:** Check two files: the migration log at `$JFROG_HOME/artifactory/var/log/migration.log` and the new configuration file at `$JFROG_HOME/artifactory/var/etc/system.yaml`. The `system.yaml` file contains your current custom configurations translated to the new format. For metadata migration details, see [Artifactory upgrade from version 6.10.x to 7.x](upgrading-from-artifactory-version-6-10-x-onwards-to-7-x).

</Accordion>

## Upgrading from Artifactory Version Below 6.10

To upgrade from a version below 6.10.x, you first need to upgrade to version 6.10.x (or any 6.x version above 6.10.x) as described in the <a href="https://jfrog.com/help/v/u/jfrog-artifactory-version-6.0-user-guide" target="_blank">Upgrading Artifactory 6.x documentation</a>, and then continue to upgrading from version 6.10 to 7.x.

Before you proceed, see [System Requirements](artifactory-system-requirements-and-platform-support) for information on supported platforms, supported browsers, and other requirements.

<Accordion title="Artifactory System Requirements" icon="fa-info-circle">
  Artifactory system requirements depend mainly upon the expected amount of active clients.

  | Number of Active Clients | Processor                                         | Memory                                            |
  | :----------------------- | :------------------------------------------------ | :------------------------------------------------ |
  | 0-20                     | 4 core CPU                                        | 6 GB                                              |
  | 20-100                   | 6 core CPU                                        | 12 GB                                             |
  | 100-200                  | 8 core CPU                                        | 18 GB                                             |
  | 200+                     | Contact [JFrog Support](mailto:support@jfrog.com) | Contact [JFrog Support](mailto:support@jfrog.com) |

  ## Operating Systems and Platform Support

  The following table lists the supported operating systems and their versions:

  | Product         | Debian     | RHEL     | Ubuntu              | Amazon Linux      | Windows Server   |
  | :-------------- | :--------- | :------- | :------------------ | :---------------- | :--------------- |
  | **Artifactory** | 11.x, 12.x | 8.x, 9.x | 20.04, 22.04, 24.04 | Amazon Linux 2023 | 2016, 2019, 2022 |

  <br />

  <Callout icon="📘" theme="info">
    **Note**

    Debian 12.x and Ubuntu 24.04 are supported from Artifactory 7.104 and Distribution 2.28.

    Windows 2022 is supported from Artifactory 7.125.
  </Callout>

  ## Supported Platforms

  The following table lists the supported platforms:

  <Table align={["left","left","left","left","left"]}>
    <thead>
      <tr>
        <th>
          Product
        </th>

        <th>
          x86-64
        </th>

        <th>
          ARM64
        </th>

        <th>
          Kubernetes
        </th>

        <th>
          OpenShift
        </th>
      </tr>
    </thead>

    <tbody>
      <tr>
        <td>
          **Artifactory**
        </td>

        <td>
          ![](https://files.readme.io/c71e6fa39c8e1d5e494b90df587cbf743b3dee9cc1b143eb314c34fb4b1ff066-uuid-ea92c1e1-5d79-3981-c8d5-5a5d13efa637.svg)
        </td>

        <td>
          ![](https://files.readme.io/c71e6fa39c8e1d5e494b90df587cbf743b3dee9cc1b143eb314c34fb4b1ff066-uuid-ea92c1e1-5d79-3981-c8d5-5a5d13efa637.svg)
        </td>

        <td>
          1.27+
        </td>

        <td>
          4.14+
        </td>
      </tr>
    </tbody>
  </Table>

  Installation on Kubernetes environments is through Helm Charts. Supported Helm version is Helm 3.17+.

  <Callout icon="✅" theme="okay">
    **Kubernetes Sizing Requirements**

    We have included YAML files with different sizing configurations for <Anchor label="Artifactory" target="_blank" href="https://github.com/jfrog/charts/tree/master/stable/artifactory/sizing">Artifactory</Anchor> , <Anchor label="Xray" target="_blank" href="https://github.com/jfrog/charts/tree/master/stable/xray/sizing">Xray</Anchor>, and <Anchor label="Distribution" target="_blank" href="https://github.com/jfrog/charts/tree/master/stable/distribution/sizing">Distribution</Anchor> in our GitHub pages. You can use these YAML files when you set up your cluster.
  </Callout>

  <Callout icon="📘" theme="info">
    **ARM64 Support for Container-Based Installations**

    Artifactory, Xray and Distribution supports installation on ARM64 architecture specifically through Helm and Docker installations. When deploying a product on an ARM64 platform, an external database must be set up as Artifactory does not support the bundled database for ARM64 installations. The appropriate ARM64 Container Image is automatically pulled during the Helm or Docker installation process.
  </Callout>

  ## Artifactory Database Requirements

  Artifactory supports the following databases:

  * **PostgreSQL**

  <Callout icon="✅" theme="okay">
    **Tip**

    JFrog highly recommends using PostgreSQL for all products in the JFrog Platform. For more information, see [Choose the right database](choose-the-right-database).
  </Callout>

  * **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 are not supported.

  ## Artifactory File Store

  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](filestore-configuration-landing).

  ### 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>`](file-system-binary-provider-template-configuration) 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.

  <Callout icon="📘" theme="info">
    **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.
  </Callout>

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

  <Table>
    <thead>
      <tr>
        <th>
          Microservice
        </th>

        <th>
          Port
        </th>
      </tr>
    </thead>

    <tbody>
      <tr>
        <td>
          Artifactory
        </td>

        <td>
          HTTP: 8081, 8091
        </td>
      </tr>

      <tr>
        <td>
          Frontend
        </td>

        <td>
          HTTP: 8070
        </td>
      </tr>

      <tr>
        <td>
          Access
        </td>

        <td>
          HTTP: 8040, 8015

          gRPC: 8045, 8016
        </td>
      </tr>

      <tr>
        <td>
          Topology
        </td>

        <td>
          HTTP: 8020

          gRPC: 8021
        </td>
      </tr>

      <tr>
        <td>
          One Model
        </td>

        <td>
          HTTP: 8071, 8074

          gRPC: 8072
        </td>
      </tr>

      <tr>
        <td>
          Metadata
        </td>

        <td>
          HTTP: 8086
        </td>
      </tr>

      <tr>
        <td>
          Router
        </td>

        <td>
          HTTP: 8082, 8046, 8049

          gRPC: 8047
        </td>
      </tr>

      <tr>
        <td>
          Observability
        </td>

        <td>
          HTTP: 8036

          gRPC: 8037
        </td>
      </tr>

      <tr>
        <td>
          Event
        </td>

        <td>
          HTTP:8061

          gRPC: 8062
        </td>
      </tr>

      <tr>
        <td>
          Mission Control
        </td>

        <td>
          HTTP: 8080
        </td>
      </tr>

      <tr>
        <td>
          JFConnect
        </td>

        <td>
          HTTP: 8030

          gRPC: 8035
        </td>
      </tr>

      <tr>
        <td>
          JFConfig
        </td>

        <td>
          HTTP: 8010
        </td>
      </tr>

      <tr>
        <td>
          Evidence
        </td>

        <td>
          HTTP: 8051
        </td>
      </tr>

      <tr>
        <td>
          Artifactory Federation Service (RTFS)
        </td>

        <td>
          HTTP: 8025

          gRPC: 8026
        </td>
      </tr>
    </tbody>
  </Table>
</Accordion>