Deploy apps using Deployment configurations
RubyMine provides the capability to deploy applications to remote servers using deployment configurations. In this topic, we'll show you how to set up a remote deployment server, browse its file system right from the IDE, and upload your web application to this server.
Before deploying your application to a remote server:
Configure a deployment server
You can configure the deployment server as follows:
Open Settings/Preferences Ctrl+Alt+S and go to the page.
Click and select SFTP.
In the Create New Server dialog, specify the configuration name and click OK.
Specify the following settings in the Connection tab:
Visible only for this project: enable this option if you do not want to share the configuration between projects.
Type: make sure that SFTP is used as a file transfer protocol.
SSH configuration: select the existing SSH configuration used to access the server or click the ellipsis button to add a new one.
Root path: leave the default / path to point at the root folder on the server.
Web server URL: specify the root URL address.
Switch to the Mapping tab to specify where to deploy your application:
Local path: specify the path to the project root on a local machine, for example, /Users/jetbrains/RubymineProjects/sample_rails_app.
Deployment path: specify the deployment folder on your server. In our case, it will be /home/deploy/sample_rails_app.
(Optional) On the Excluded Paths tab, you can configure a list of local and remote folders that you do not want to be involved in upload/download.
Browse a remote host
After you've configured the deployment server, you can browse its file system right from the IDE:
Selectfrom the main menu.
In the invoked Remote Host tool window, you can perform various actions, for example:
Drag files between the remote server and local machine (by using the Remote Host and Project Alt+1 tool windows).
Create and remove files and directories.
Compare and synchronize files of the local and remote projects.
Upload your app to a server
After you've configured a deployment server, you can upload your project to this server:
In the Project view Alt+1, right-click the root project directory and select.
Wait until RubyMine copies the project files to the remote host. You can see the deployment status in the File Transfer tool window ( ).
To learn how to synchronize changes between the local and remote projects, see Synchronize changes.
After you've made changes in your local project, you need to upload new files to the remote server. RubyMine allows you to compare local and remote files/directories, synchronize changes manually, or enable automatic upload.
Synchronize changes manually
In the Project view Alt+1, select the required file or directory for synchronizing. For example, if you want to synchronize the entire project, select the project root.
From the main menu, select.
In the invoked dialog, you can select individual files and compare their local and remote versions.
Use the button Enter to upload changes for the selected file. Ctrl+Enter allows you to upload all files at once.
Enable automatic uploading
Specify the default upload server. Open, select the desired server, and click .
Go to the Upload changed files automatically to the default server option to Always, or On explicit save action.page and set the
Disable uploading external changes
Open Settings/Preferences and go to the page.
Set Upload changed files to the default server to Always and enable the Skip external changes option.
Configure deployment options
To configure deployment options, open Settings/Preferences Ctrl+Alt+S and go to the page. Use this page to specify additional configuration settings for uploading and downloading project files to and from local and remote servers.
|Exclude items by name||In this field, specify patterns for the names of files and folders that you do not need to be deployed. |
The exclusion is applied recursively. This means that if a matching folder has subfolders, the contents of these subfolders are not deployed either.
Use this list to specify how much detailed logging you need to have. The available options are:
|Stop operation on the first error||Select this checkbox to have data transfer stopped as soon as an error occurs.|
|Overwrite up-to-date files|
If this checkbox is selected, all files will be uploaded uploaded no matter whether they have been changed since the previous upload or not.
Otherwise, if this checkbox is not selected, only the files that have been changed since the previous upload will be uploaded.
|Preserve files timestamps||Select this checkbox to prevent resetting timestamps of files on upload.|
|Delete target items when source ones do not exist|
If this checkbox is selected, any file in the destination directory will be removed if the file with this name is not involved in the current upload.
This option is applicable when synchronization if performed from the Project tool window or from the Remote Host tool window.
|Create empty directories||Select this checkbox to have an empty directory on the server created automatically if a new local directory has been created in your project since the last upload in the source folder.|
|Prompt when overwriting or deleting local items||Select this checkbox to have RubyMine ask you for confirmation before overwriting or deleting local items for synchronization during download.|
|Upload changed files automatically to the default server|
From this list, choose when you want RubyMine to automatically upload a file to the default server or server group. The available options are:
The default server configuration or a server group is appointed on the Deployment page by selecting the desired item in the list and clicking the Use as Default toolbar button .
|Skip external changes|
Select this checkbox to exclude local changes that were made using a third-party tool (a VCS, a script, and so on) from automatic upload.
The checkbox is available only when the Always or On explicit save action option is selected in the Upload changed files automatically to the default server list.
|Delete remote files when local are deleted|
Select this checkbox to have RubyMine automatically delete remote files during automatic uploads in case the local ones are deleted. The checkbox is available only when the Always or On explicit save action option is selected in the Upload changed files automatically to the default server list.
Note that this option serves as an extra safety measure and may result in unwanted files remaining on the remote server. As an example, consider a local file Foo.php, which is renamed to Bar.php. Since renaming a file is technically indistinguishable from deleting the file and creating a new one, the following will happen after automatic upload:
|Override default permissions on files||Select this checkbox to change the default permissions assigned to uploaded files on remote hosts. Click Browse to open the Files Default Permissions dialog, where you can manage access to uploaded files on remote hosts by assigning permissions.|
|Override default permissions on folders||Select this checkbox to change the default permissions assigned to uploaded folders on remote hosts. Click Browse to open the Folders Default Permissions dialog, where you can manage access to uploaded folders on remote hosts by assigning permissions.|
|Warn when uploading over newer file|
Use this list to define the version-control policy to apply when uploading files to remote hosts. Depending on this choice, RubyMine either checks whether any changes have been made to the corresponding files on the remote host since you downloaded them or just overwrites the remote files.
|Notify about remote changes||Select this checkbox to receive notifications about changes on the remote host. The checkbox is available only when the Compare timestamp and size: or Compare content: option is selected in the Warn when uploading over newer file list.|
|Show warning dialog on moving on Remote Host||If this checkbox is selected, RubyMine will display a confirmation message when you move an item to a different location on a remote host in the Remote Host Tool Window.|
|SFTP advanced options (IDE level setting)|
|Add new host key to known_hosts|
Choose whether RubyMine should ask about connecting to a host not listed in the known_hosts file. The following options are available:
|Hash hosts in known_hosts file||If this checkbox is selected, the new host record will be stored in hash format.|