Atom Remote Sync [](https://atom.io) [](https://github.com/yongkangchen/remote-sync/stargazers) [](https://raw.githubusercontent.com/yongkangchen/remote-sync/master/LICENSE) [](https://github.com/yongkangchen/remote-sync/issues)

October 14, 2017 ยท View on GitHub

Atom Remote Sync

Atom Remote Sync Atom.io GitHub stars GitHub license GitHub issues

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:

  • Open Atom

  • Open settings

    • ctrl+, | cmd+,
    • Edit > Preferences (Linux)
    • Atom > Preferences (OS X)
    • File > Preferences (Windows)
  • Select "Install" tab

  • Search for remote-sync and 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

  1. Right click main project folder
  2. Navigate to Remote Sync > Configure
  3. Fill in the details / select options
  4. Hit save

Manually

  1. Add a file named .remote-sync.json to your project
  2. Add/configure with one of the contents below
  3. Save the file

From scratch, with a remote server

  1. Follow setups for creating existing project - see above
  2. Right click main project folder
  3. Navigate to Remote Sync > Download folder

Options

The .remote-sync.json in your project root will use these options:

OptionDatatypeDefaultDetails
transportString""scp for SCP/SFTP, or ftp for FTP
hostnameString""Remote host address
portString""Remort port to connect on (typically 22 for SCP/SFTP, 21 for FTP)
usernameString""Remote host username
passwordString""Remote host password
keyfileString""Absolute path to SSH key (only used for SCP)
secureBooleanfalseSet to true for both control and data connection encryption (only used for FTP)
passphraseString""Passphrase for the SSH key (only used for SCP)
useAgentStringfalseWhether or not to use an agent process (only used for SCP)
targetString""Target directory on remote host
sourceString""Source directory relative to project root
ignoreArray[".remote-sync.json",".git/**"]Array of minimatch patterns of files to ignore
watchArray[]Array of files (relative to project root - starting with "/") to watch for changes
uploadMirrorsArray[]Transport mirror config array when upload
uploadOnSaveBooleanfalseWhether or not to upload the current file when saved
saveOnUploadBooleanfalseWhether or not to save a modified file before uploading
useAtomicWritesBooleanfalseUpload file using a temporary filename before moving to its final location (only used for SCP)
deleteLocalBooleanfalseWhether 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 Make a donation via Paypal

Click 'Send Money' after login PayPal, and my PayPal account is: lx1988cyk#gmail.com