---
updatedAt: 2026-07-29T14:27:30.000Z
agentTools:
  siteIndex: https://docs.jfrog.com/llms.txt
  projectIndex: https://docs.jfrog.com/artifactory/llms.txt
---

# Copy Artifactory configuration with jf rt transfer-config

Copy Artifactory configuration from a source server to a target server.

Copy full Artifactory configuration from a source Artifactory server to a target Artifactory server.

## Synopsis

```bash
jf rt transfer-config <source-server-id> <target-server-id> [options]
```

**Aliases:** —

## Arguments

The following table lists the arguments for `jf rt transfer-config`.

| Argument             | Required | Description                            |
| -------------------- | -------- | -------------------------------------- |
| `<source-server-id>` | Yes      | Server ID to export configuration from |
| `<target-server-id>` | Yes      | Server ID to import configuration to   |

## Options

The following table lists the flags supported by `jf rt transfer-config`.

| Flag                   | Default               | Description                                                                                                                                                     |
| ---------------------- | --------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `--exclude-repos`      | —                     | Semicolon-separated list of repositories to exclude. Supports wildcards                                                                                         |
| `--force`              | `false`               | Set to true to allow transfer to a non-empty Artifactory server                                                                                                 |
| `--include-repos`      | —                     | Semicolon-separated list of repositories to include. Supports wildcards                                                                                         |
| `--prechecks`          | `false`               | Set to true to run pre-transfer checks against the source server before any data is moved. Pre-check mode skips the interactive confirmation prompt.            |
| `--source-working-dir` | `$JFROG_CLI_TEMP_DIR` | Local working directory on the source server                                                                                                                    |
| `--target-working-dir` | `/storage`            | Local working directory on the target server                                                                                                                    |
| `--verbose`            | `false`               | Set to true to increase verbosity during export                                                                                                                 |
| `--format`             | —                     | Output format: `json` only. When omitted, produces no output (backward-compatible). See [jf rt output format](/docs/jf-rt-output-format#jf-rt-transfer-config). |

## When to Use

Use `transfer-config` when **migrating an entire Artifactory instance** to a new server — for example, moving from self-hosted to JFrog SaaS, or upgrading to new infrastructure. This copies all repositories, users, groups, permissions, and other configuration.

The following table helps you choose `transfer-config` versus related commands.

| Scenario                                                | Use This Command                                                   |
| ------------------------------------------------------- | ------------------------------------------------------------------ |
| Full migration to a new empty server                    | `jf rt transfer-config`                                            |
| Add repos from source to existing target without wiping | [`jf rt transfer-config-merge`](/docs/jf-rt-transfer-config-merge) |
| Move only files (config already transferred)            | [`jf rt transfer-files`](/docs/jf-rt-transfer-files)               |

## Prerequisites

**Before you run `transfer-config`:**

1. Install the data-transfer plugin on the source server:

   ```bash
   jf rt transfer-plugin-install <source-server>
   ```

   > **Note:** If your JFrog home directory is not at the default `/opt/jfrog`, specify the path with `--home-dir <path>`. Use `--version` to pin a specific plugin version instead of `latest`.

2. Configure both source and target servers with `jf config add`.

3. Use admin access tokens (or equivalent credentials) for both servers.

4. Ensure the target server is empty unless you intend to use `--force`.

## Examples

<Callout icon="🚧" theme="warn">
  **Warning**

  This command always wipes all Artifactory content on the target server before importing. `--force` is required only when the target is non-empty. It does not protect existing content from being overwritten.
</Callout>

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

  Before executing, the CLI always displays a confirmation prompt and a credential-security reminder. `--force` does **not** skip this prompt. `--force` only allows transfer to a non-empty target. Enter `y` to proceed, or pipe `y` into the command for non-interactive use.
</Callout>

### Verify Command Help

**To view command help:**

* Run:

```bash
jf rt transfer-config --help
```

### Transfer Full Configuration

**To transfer full configuration between servers:**

* Run:

```bash
jf rt transfer-config <source-server-id> <target-server-id> --force
```

**Where:**

* `<source-server-id>` and `<target-server-id>` — CLI server IDs (see [Arguments](#arguments)).

**Full example:**

```bash
jf rt transfer-config source-server target-server --force
```

On success, the CLI prints progress through five phases:

```
[Info] ========== Phase 1/5 - Preparations ==========
[Info] ========== Phase 2/5 - Export configuration from source ==========
[Info] ========== Phase 3/5 - Import configuration to target ==========
[Info] ========== Phase 4/5 - Copy files ==========
[Info] ========== Phase 5/5 - Cleanup ==========
```

### Transfer Specific Repositories

**To transfer configuration for specific repositories:**

* Run:

```bash
jf rt transfer-config <source-server-id> <target-server-id> --include-repos "<repo-list>"
```

**Full example:**

```bash
jf rt transfer-config source-server target-server --include-repos "libs-release;libs-snapshot"
```

### Run Pre-Transfer Checks

**To run pre-transfer checks with verbose output:**

* Run:

```bash
jf rt transfer-config <source-server-id> <target-server-id> --prechecks --verbose
```

**Full example:**

```bash
jf rt transfer-config source-server target-server --prechecks --verbose
```

Pre-check mode validates the source configuration without transferring any data and skips the interactive confirmation prompt. It may take significant time for large configurations (thousands of repositories).

### Run Non-Interactively in CI/CD Pipelines

**To run non-interactively (for example, in CI/CD pipelines):**

* Pass `--force` (required when the target is non-empty) and pipe `y` into the command to answer the confirmation prompt. `--force` does not skip the prompt:

```bash
echo "y" | jf rt transfer-config <source-server-id> <target-server-id> --force
```

**Full example:**

```bash
echo "y" | jf rt transfer-config source-server target-server --force
```

## Known Limitations

* The target server content is **always wiped** during transfer. `--force` is required when the target is non-empty. It does not prevent existing content from being overwritten, and it does **not** skip the interactive confirmation prompt (pipe `y` into the command for non-interactive use).
* Very large configurations (thousands of repositories) may take significant time for pre-checks
* Some configuration elements (for example, custom plugins, LDAP settings) may require manual migration
* The source server must be accessible from the machine running the CLI

## Frequently Asked Questions

This section provides answers to frequently asked questions.

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

##### Q: How do I copy full Artifactory configuration to a new server?
**A:** Run `jf rt transfer-config <source-server-id> <target-server-id> --force`. See [Transfer Full Configuration](#transfer-full-configuration).

##### Q: Does --force skip the confirmation prompt?
**A:** No. `--force` only allows transfer to a non-empty target. It does not skip the confirmation prompt, so pipe `y` into the command for non-interactive use. See [Run Non-Interactively in CI/CD Pipelines](#run-non-interactively-in-cicd-pipelines).

##### Q: When should I use transfer-config instead of transfer-config-merge?
**A:** Use `transfer-config` for a full migration to a new, empty server. Use `transfer-config-merge` when the target already has data and you want to add to it without wiping existing content. See [When to Use](#when-to-use).

##### Q: What do I need before running transfer-config?
**A:** Install the data-transfer plugin on the source server, configure both servers with `jf config add`, and use admin access tokens for both. See [Prerequisites](#prerequisites).

##### Q: What happens to existing content on the target server?
**A:** The target server content is always wiped during transfer. `--force` is required only when the target is non-empty, and it does not protect existing content from being overwritten. See [Known Limitations](#known-limitations).

</Accordion>

## Related Topics

* [Merge Artifactory Configuration with jf rt transfer-config-merge](/docs/jf-rt-transfer-config-merge)
* [Transfer Artifact Files with jf rt transfer-files](/docs/jf-rt-transfer-files)
* [Transfer Files Between Artifactory Servers](/docs/transferring-files-between-artifactory-servers)
* [jf rt Output Format](/docs/jf-rt-output-format)

<br />