# FTP and SFTP

URL: /docs/storage-providers/ftp-sftp

Source: https://github.com/easypanel-io/monorepo/blob/main/apps/website/content/docs/storage-providers/ftp-sftp.mdx

Configure a password-authenticated FTP or SFTP backup destination.



FTP and SFTP send backups to a remote server account. Both use the same
Easypanel fields, but their transport security differs.

| Protocol | Default port | Security                                           |
| -------- | ------------ | -------------------------------------------------- |
| SFTP     | `22`         | Encrypts authentication and file transfer over SSH |
| FTP      | `21`         | Does not encrypt credentials or backup traffic     |

Use SFTP whenever the destination supports it. Easypanel's current SFTP
provider supports username and password authentication; it does not expose an
SSH private-key field.

## Prepare the remote account [#prepare-the-remote-account]

Create a dedicated account and restrict it to the directory intended for
backups. It needs permission to:

* list directories;
* create directories and upload files;
* read files for recovery;
* replace and delete files when retention or volume synchronization requires
  it.

Confirm that the Easypanel server can reach the remote host and port. FTP
servers also need their data connections to pass through any provider or host
firewall.

## Configure SFTP [#configure-sftp]

1. Open **Settings → Server → Storage Providers**.
2. Select **Add Provider → SFTP**.
3. Enter:
   * **Name** for the connection in Easypanel;
   * **Host** as a hostname or IP address;
   * **Username** and **Password**;
   * **Port**, normally `22`.
4. Save the provider.
5. Run a manual backup and verify the remote file.

## Configure FTP [#configure-ftp]

1. Open **Settings → Server → Storage Providers**.
2. Select **Add Provider → FTP**.
3. Enter the provider name, host, username, password, and port. The normal FTP
   port is `21`.
4. Save the provider.
5. Run a manual backup and verify the remote file.

Saving either provider asks `rclone` to list the authenticated account's remote
root. Easypanel returns **Could not connect** when that listing fails.

<Callout type="warn">
  Listing does not prove that the account can upload, download, or delete.
  Verify all required operations with a manual backup and a recovery test.
</Callout>

## Destination paths [#destination-paths]

Backup destination paths are relative to the remote root visible to the
authenticated account:

```text
production/orders-postgres
```

Configure the FTP or SFTP account's home or chroot directory on the destination
server. Easypanel does not provide a separate base-directory field.

Use a different path for every backup configuration. Database retention can
delete files under its path, and volume sync can remove remote files that are
not present in the source volume.

## Edit or remove the provider [#edit-or-remove-the-provider]

Editing the host, port, username, or password revalidates the listing
connection. Perform another manual backup afterward.

Removing the provider deletes its Easypanel configuration but does not delete
remote files. Backup configurations that still reference its ID will stop
working.

## Troubleshooting [#troubleshooting]

### Could not connect [#could-not-connect]

* Test DNS and network access from the Easypanel server.
* Confirm the protocol and port.
* Re-enter the username and password.
* Check whether the account is locked or restricted by source address.
* Verify list permission on the account's remote root.
* For FTP, check the server's passive-mode and firewall configuration.

### Upload fails after the provider saved successfully [#upload-fails-after-the-provider-saved-successfully]

The account can list but cannot write. Grant directory creation and write
permission in the destination path, then run the backup again.

### Retention or volume sync fails [#retention-or-volume-sync-fails]

Grant delete and replace permission. Check whether filesystem ACLs, immutable
flags, or server-side retention rules protect the affected files.

### SFTP requires an SSH key [#sftp-requires-an-ssh-key]

The current Easypanel form supports password authentication only. Create a
restricted password-authenticated account or choose another provider type.

See [Storage Providers](/docs/storage-providers) for shared permission and
backup-testing guidance.
