# Tutorial: Deployment in IntelliJ IDEA

> For the complete documentation index, see [llms.txt](https://www.jetbrains.com/help/idea/2026.3/llms.txt).

Copy project files to a local or mounted folder, compare the copies, and configure automatic upload when you save changes. This setup transfers files, it does not build or start your application.

Procedure: Enable the FTP/SFTP/WebDAV Connectivity plugin

This functionality relies on the [FTP/SFTP/WebDAV Connectivity](https://plugins.jetbrains.com/plugin/13125-ftp-sftp-webdav-connectivity)  plugin, which  is bundled and enabled in IntelliJ IDEA   by default. If the relevant features are not available, make sure that you did not disable the plugin.

> **Note:**
> The FTP/SFTP/WebDAV Connectivity plugin is not available in IntelliJ IDEA without the Ultimate subscription.

1. Press `Ctrl+Alt+S` (Windows), `⌘ Comma` (macOS), `⌘ Comma` (IntelliJ IDEA Classic (macOS)), `⌘ Comma` (macOS System Shortcuts), `Ctrl+Alt+S` (XWin), `Ctrl+Alt+S` (GNOME), `Ctrl+Alt+S` (KDE), `Ctrl+Alt+S` (Emacs), `Ctrl+Alt+S` (Sublime Text), `⌘ Comma` (Sublime Text (macOS)), `Ctrl+Alt+S` (Visual Studio), `⌘ Comma` (Visual Studio (macOS)), `Ctrl+Alt+S` (NetBeans), `Ctrl+Alt+S` (Eclipse), `⌘ Comma` (Eclipse (macOS)) to open settings and then select `Plugins`.

2. Find the FTP/SFTP/WebDAV Connectivity plugin and click Enable.

## Configure the deployment server

Procedure: Add a new server

1. Press `Ctrl+Alt+S` (Windows), `⌘ Comma` (macOS), `⌘ Comma` (IntelliJ IDEA Classic (macOS)), `⌘ Comma` (macOS System Shortcuts), `Ctrl+Alt+S` (XWin), `Ctrl+Alt+S` (GNOME), `Ctrl+Alt+S` (KDE), `Ctrl+Alt+S` (Emacs), `Ctrl+Alt+S` (Sublime Text), `⌘ Comma` (Sublime Text (macOS)), `Ctrl+Alt+S` (Visual Studio), `⌘ Comma` (Visual Studio (macOS)), `Ctrl+Alt+S` (NetBeans), `Ctrl+Alt+S` (Eclipse), `⌘ Comma` (Eclipse (macOS)) to open settings and then select `Build, Execution, Deployment | Deployment`.

Alternatively, go to `Tools | Deployment | Configuration` in the main menu.

2. Click ![Add item](https://resources.jetbrains.com/help/img/idea/2026.3/app.expui.general.add.svg) and select Local or mounted folder.

![Add server dialog](https://resources.jetbrains.com/help/img/idea/2026.3/deployment_add_server.png)

3. In the Create New Server dialog that opens, type the server name and click OK.

The new server is added, but it only shows the Web server URL `http://localhost` where you will actually browse your uploaded files.

Procedure: Specify the server root folder

1. In the Folder field, specify the directory to which the project files will be uploaded.

Enter the absolute path to the destination folder you created, or click ![Browse](https://resources.jetbrains.com/help/img/idea/2026.3/app.general.ellipsis.svg) to select it.

In our case, this is the  `Users/jetbrains/deployment` local folder. You can either type the path manually or press `Shift+Enter` (Windows), `⇧ ⏎` (macOS), `⇧ ⏎` (IntelliJ IDEA Classic (macOS)), `⇧ ⏎` (macOS System Shortcuts), `Shift+Enter` (XWin), `Shift+Enter` (GNOME), `Shift+Enter` (KDE), `Shift+Enter` (Emacs), `Ctrl+Enter` (Sublime Text), `⌘ ⏎` (Sublime Text (macOS)), `Shift+Enter` (Visual Studio), `⇧ ⏎` (Visual Studio (macOS)), `Shift+Enter` (NetBeans), `Shift+Enter` (Eclipse), `⇧ ⏎` (Eclipse (macOS)).

2. Keep Visible only for this project selected to use this configuration in the current project. Clear it if you want to use the configuration in other projects or export it later.

![Deployment Connection Tab](https://resources.jetbrains.com/help/img/idea/2026.3/ij_deployment_connection_tab.png)

Procedure: Specify the deployment path

1. Next, switch to the [Mappings tab](deployment-mappings-tab.html).

However, you can select any other directory within your project tree. Let's use the default path.

2. In the Deployment path field (which is by default empty), specify the folder on your server where IntelliJ IDEA will upload data from the folder specified in the Local path field.

In this example, it's `Application` . This path is specified relative to the web server root folder, which is `Users/jetbrains/deployment` .

3. Leave the default `/` value for Web path .

![Deployment Mapping Tab](https://resources.jetbrains.com/help/img/idea/2026.3/ij_deployment_mapping_tab.png)

After you apply the changes, the server is ready to use.

## Browse remote hosts

Select `Tools | Deployment | Browse Remote Host`. In the Remote Host tool window, select MyRemoteServer to browse the destination folder.

![Remote Hosts tool window](https://resources.jetbrains.com/help/img/idea/2026.3/ij_deployment_remote_host.png)

## Deploy files

Procedure: Upload a file to the server

1. In the Project tool window `Alt+1` (Windows), `⌘ 1` (macOS), `⌘ 1` (IntelliJ IDEA Classic (macOS)), `⌘ 1` (macOS System Shortcuts), `Alt+1` (XWin), `Alt+1` (GNOME), `Alt+1` (KDE), `Alt+1` (Emacs), `Alt+1` (Sublime Text), `⌘ 1` (Sublime Text (macOS)), `Ctrl+Alt+L` (Visual Studio), `⌘ ⌥ L` (Visual Studio (macOS)), `Ctrl+1` (NetBeans), `Alt+1` (Eclipse), `Alt+1` (Eclipse (macOS)), right-click `README.md`.

2. Select `Deployment | Upload to MyRemoteServer`. If this action is not shown, select `Deployment | Upload To…` and choose MyRemoteServer. Check the result in the File Transfer tool window.

![Deployment upload](https://resources.jetbrains.com/help/img/idea/2026.3/ij_deployment_upload.png)

You can also upload the contents of each directory within your project.  Right-click the directory you want to upload in the Project tool window and select `Deployment | Upload to MyRemoteServer` .

Procedure: Compare remote and local versions

There is a local and a remote copy of the `README.md` file, and they are identical. Modify the local version.

* In the [Remote Host tool window](remote-host-tool-window.html) tool window, right-click `README.md` and select Compare with Local Version . IntelliJ IDEA opens the Diff Viewer.

![Diff viewer](https://resources.jetbrains.com/help/img/idea/2026.3/ij_deployment_diff_viewer.png)

Procedure: Download the file from the server

1. In the [Remote Host tool window](remote-host-tool-window.html) tool window, right-click the `README.md` file and select Download from here . IntelliJ IDEA shows a warning.

![Deployment download warning](https://resources.jetbrains.com/help/img/idea/2026.3/ij_deployment_download_warning.png)

2.

## Synchronize the changes

## Automatically upload files to the default server

When you need to have the exact same files on the server as in an IntelliJ IDEA project, automatic upload can be helpful. Automatic upload means that whenever a change occurs in the IDE, it will be deployed to the default deployment server.

A deployment server is considered default if its settings apply by default during automatic upload of changed files.

Procedure: Define the default server

1. Press `Ctrl+Alt+S` (Windows), `⌘ Comma` (macOS), `⌘ Comma` (IntelliJ IDEA Classic (macOS)), `⌘ Comma` (macOS System Shortcuts), `Ctrl+Alt+S` (XWin), `Ctrl+Alt+S` (GNOME), `Ctrl+Alt+S` (KDE), `Ctrl+Alt+S` (Emacs), `Ctrl+Alt+S` (Sublime Text), `⌘ Comma` (Sublime Text (macOS)), `Ctrl+Alt+S` (Visual Studio), `⌘ Comma` (Visual Studio (macOS)), `Ctrl+Alt+S` (NetBeans), `Ctrl+Alt+S` (Eclipse), `⌘ Comma` (Eclipse (macOS)) to open settings and then select `Build, Execution, Deployment | Deployment`.

Alternatively, go to `Tools | Deployment | Configuration` in the main menu.

2. From the list of servers, select the one you want to make default and click ![the Use as default button](https://resources.jetbrains.com/help/img/idea/2026.3/app.actions.setDefault.svg) on the toolbar above the list of servers.

> **Tip:**
> You can also click the Default Deployment Server widget in the IntelliJ IDEA status bar and select the desired server or server group from the popup menu.

Procedure: Enable automatic upload

As soon as the default server is set, you can make upload to this server automatic.

1. Press `Ctrl+Alt+S` (Windows), `⌘ Comma` (macOS), `⌘ Comma` (IntelliJ IDEA Classic (macOS)), `⌘ Comma` (macOS System Shortcuts), `Ctrl+Alt+S` (XWin), `Ctrl+Alt+S` (GNOME), `Ctrl+Alt+S` (KDE), `Ctrl+Alt+S` (Emacs), `Ctrl+Alt+S` (Sublime Text), `⌘ Comma` (Sublime Text (macOS)), `Ctrl+Alt+S` (Visual Studio), `⌘ Comma` (Visual Studio (macOS)), `Ctrl+Alt+S` (NetBeans), `Ctrl+Alt+S` (Eclipse), `⌘ Comma` (Eclipse (macOS)) to open settings and then select `Deployment | Options`.

Alternatively, go to `Tools | Deployment | Options` in the main menu.

2. From the Upload changed files automatically to the default server  drop-down list, select one of the following options:

* Always: upload a file upon every automatic and explicit save. > **Tip:** > You can also enable this option in `Tools | Deployment | Automatic Upload` in the main menu.

* On explicit save action: upload a file after save only if this save was invoked manually by choosing `File | Save All` or pressing `Ctrl+S` (Windows), `⌘ S` (macOS), `⌘ S` (IntelliJ IDEA Classic (macOS)), `⌘ S` (macOS System Shortcuts), `Ctrl+S` (XWin), `Ctrl+S` (GNOME), `Ctrl+S` (KDE), `Ctrl+X, Ctrl+S` (Emacs), `Ctrl+S` (Sublime Text), `⌘ S` (Sublime Text (macOS)), `Ctrl+Shift+S` (Visual Studio), `⌘ ⇧ S` (Visual Studio (macOS)), `Ctrl+S` (NetBeans), `Ctrl+S` (Eclipse), `⌘ S` (Eclipse (macOS)).

The Always mode is not recommended for deploying to production: incomplete code can be uploaded while developing, potentially breaking the production application.

## Upload external changes

External changes are changes made outside the IDE, such as a Git branch change or files updated by a code generator. They can come from tools run inside or outside IntelliJ IDEA.

To include these changes in automatic upload, open `Settings | Build, Execution, Deployment | Deployment | Options`. Set Upload changed files automatically to the default server to Always or On explicit save action, and clear Skip external changes.

With On explicit save action, use `File | Save All` `Ctrl+S` (Windows), `⌘ S` (macOS), `⌘ S` (IntelliJ IDEA Classic (macOS)), `⌘ S` (macOS System Shortcuts), `Ctrl+S` (XWin), `Ctrl+S` (GNOME), `Ctrl+S` (KDE), `Ctrl+X, Ctrl+S` (Emacs), `Ctrl+S` (Sublime Text), `⌘ S` (Sublime Text (macOS)), `Ctrl+Shift+S` (Visual Studio), `⌘ ⇧ S` (Visual Studio (macOS)), `Ctrl+S` (NetBeans), `Ctrl+S` (Eclipse), `⌘ S` (Eclipse (macOS)) to upload the pending changes.

With Never, automatic upload is disabled and Skip external changes is unavailable.

![Skip external changes](https://resources.jetbrains.com/help/img/idea/2026.3/deployment_options_external_changes.png)

## Export/import deployment settings

Now that you have a deployment server all set up, you can export the server configuration settings and then import them on another computer.

> **Tip:**
> You can export the settings only if the deployment configuration is global. You can make it global in settings: press ( `Ctrl+Alt+S` (Windows), `⌘ Comma` (macOS), `⌘ Comma` (IntelliJ IDEA Classic (macOS)), `⌘ Comma` (macOS System Shortcuts), `Ctrl+Alt+S` (XWin), `Ctrl+Alt+S` (GNOME), `Ctrl+Alt+S` (KDE), `Ctrl+Alt+S` (Emacs), `Ctrl+Alt+S` (Sublime Text), `⌘ Comma` (Sublime Text (macOS)), `Ctrl+Alt+S` (Visual Studio), `⌘ Comma` (Visual Studio (macOS)), `Ctrl+Alt+S` (NetBeans), `Ctrl+Alt+S` (Eclipse), `⌘ Comma` (Eclipse (macOS)) ), go to `Build, Execution, Deployment | Deployment` , and disable the Visible only for this project option in the configuration you want to export.

Procedure: Export settings to a ZIP archive

1. Select `File | Manage IDE Settings | Export Settings` from the main menu.

2. In the Export Settings dialog that opens, make sure that the WebServers checkbox is selected and specify the path to the target archive.

![Export the server deployment settings](https://resources.jetbrains.com/help/img/idea/2026.3/export_deployment_settings.png)

Procedure: Import settings from a ZIP archive

1. Select `File | Manage IDE Settings | Import Settings…` from the main menu.

2. Select the ZIP archive that contains your settings in the dialog that opens.

3. Select the settings you want to apply in the Select Components to Import dialog that opens and click OK.

## Summary

You configured a local or mounted destination, copied and compared files, and enabled automatic upload. To transfer files to another computer over SFTP, create a [remote server configuration](creating-a-remote-server-configuration.html).

## See also

### Procedures

[Deploy files to a server](deploying-applications.html)

### Reference

[Deployment](settings-deployment.html)

