remote-sync
                                
                                 remote-sync copied to clipboard
                                
                                    remote-sync copied to clipboard
                            
                            
                            
                        Upload your files to remote host after every change. Both SCP/SFTP and FTP are supported.

Atom Remote Sync  
  
  
 
Use SFTP and FTP features inside Atom, having the ability to upload and download files directly from inside Atom.
Features
- Uploading/downloading files to/from the server
- Displaying diffs between the local and remote files with your favourite diff tool
- Monitoring files for external changes and automatically uploading - useful for scss/less compiling
- Support for both SCP/SFTP and FTP
Extras
- Toggle for uploading changes automatically when you save a file
- Define files to be monitored to be automatically monitoring
- Set difftoolCommand in AtomSettingView of remote-sync-- The path to your diff tool executable
- Toggle the logs for extra information
- Toggle the hiding and showing of the log panel
- Set custom config name
Installation
You can install this like any other Atom package, with one of these methods:
Via Atom (recommended)
- 
Open Atom 
- 
Open settings - ctrl+, | cmd+,
- Edit > Preferences (Linux)
- Atom > Preferences (OS X)
- File > Preferences (Windows)
 
- 
Select "Install" tab 
- 
Search for remote-syncand click install
APM - terminal
- Open a terminal
- Run apm install remote-sync
Manually
- Download / clone this repository to your ~/.atom/packages/
- Enter the directory
- Run apm install
Usage
You can configure remote sync a couple of ways:
Existing project
Via Atom (recommended)
- Right click main project folder
- Navigate to Remote Sync > Configure
- Fill in the details / select options
- Hit save
Manually
- Add a file named .remote-sync.jsonto your project
- Add/configure with one of the contents below
- Save the file
From scratch, with a remote server
- Follow setups for creating existing project - see above
- Right click main project folder
- Navigate to Remote Sync > Download folder
Options
The .remote-sync.json in your project root will use these options:
| Option | Datatype | Default | Details | 
|---|---|---|---|
| transport | String | "" | scpfor SCP/SFTP, orftpfor FTP | 
| hostname | String | "" | Remote host address | 
| port | String | "" | Remort port to connect on (typically 22 for SCP/SFTP, 21 for FTP) | 
| username | String | "" | Remote host username | 
| password | String | "" | Remote host password | 
| keyfile | String | "" | Absolute path to SSH key (only used for SCP) | 
| secure | Boolean | false | Set to true for both control and data connection encryption (only used for FTP) | 
| passphrase | String | "" | Passphrase for the SSH key (only used for SCP) | 
| useAgent | String | false | Whether or not to use an agent process (only used for SCP) | 
| target | String | "" | Target directory on remote host | 
| source | String | "" | Source directory relative to project root | 
| ignore | Array | [".remote-sync.json",".git/**"] | Array of minimatch patterns of files to ignore | 
| watch | Array | [] | Array of files (relative to project root - starting with "/") to watch for changes | 
| uploadMirrors | Array | [] | Transport mirror config array when upload | 
| uploadOnSave | Boolean | false | Whether or not to upload the current file when saved | 
| saveOnUpload | Boolean | false | Whether or not to save a modified file before uploading | 
| useAtomicWrites | Boolean | false | Upload file using a temporary filename before moving to its final location (only used for SCP) | 
| deleteLocal | Boolean | false | Whether or not to delete the local file / folder after remote delete | 
Example configuration's
SCP example:
{
  "transport": "scp",
  "hostname": "10.10.10.10",
  "port": 22,
  "username": "vagrant",
  "password": "vagrant",
  "keyfile": "/home/vagrant/.ssh/aws.pem",
  "passphrase": "your_passphrase",
  "target": "/home/vagrant/dirname/subdirname",
  "ignore": [
    ".remote-sync.json",
    ".git/**"
  ],
  "watch":[
    "/css/styles.css",
    "/index.html"
  ]
}
SCP useAgent example:
{
  "transport": "scp",
  "hostname": "10.10.10.10",
  "port": 22,
  "username": "vagrant",
  "useAgent": true,
  "target": "/home/vagrant/dirname/subdirname",
  "ignore": [
    ".remote-sync.json",
    ".git/**"
  ],
  "watch":[
    "/css/styles.css",
    "/index.html"
  ]
}
FTP example:
{
  "transport": "ftp",
  "hostname": "10.10.10.10",
  "port": 21,
  "username": "vagrant",
  "password": "vagrant",
  "target": "/home/vagrant/dirname/subdirname",
  "ignore": [
    ".remote-sync.json",
    ".git/**"
  ],
  "watch":[
    "/css/styles.css",
    "/index.html"
  ]
}
Upload mirrors example:
{
  "transport": "scp",
  "hostname": "10.10.10.10",
  "port": 22,
  "username": "vagrant",
  "password": "vagrant",
  "keyfile": "/home/vagrant/.ssh/aws.pem",
  "passphrase": "your_passphrase",
  "target": "/home/vagrant/dirname/subdirname",
  "ignore": [
    ".remote-sync.json",
    ".git/**"
  ],
  "watch":[
    "/css/styles.css",
    "/index.html"
  ],
  "uploadMirrors":[
    {
      "transport": "scp",
      "hostname": "10.10.10.10",
      "port": 22,
      "username": "vagrant",
      "password": "vagrant",
      "keyfile": "/home/vagrant/.ssh/aws.pem",
      "passphrase": "your_passphrase",
      "target": "/home/vagrant/dirname/subdirname_one",
      "ignore": [
        ".remote-sync.json",
        ".git/**"
      ]
    },
    {
      "transport": "ftp",
      "hostname": "10.10.10.10",
      "port": 21,
      "username": "vagrant",
      "password": "vagrant",
      "target": "/home/vagrant/dirname/subdirname_two",
      "ignore": [
        ".remote-sync.json",
        ".git/**"
      ]
    }
  ]
}
Make a donation via Paypal 
Click 'Send Money' after login PayPal, and my PayPal account is: lx1988cyk#gmail.com