Socket
Socket
Sign inDemoInstall

@theowenyoung/sftp-deployer

Package Overview
Dependencies
83
Maintainers
1
Versions
2
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    @theowenyoung/sftp-deployer

A command-line tool for lightning-fast SFTP deployments


Version published
Weekly downloads
4
decreased by-50%
Maintainers
1
Created
Weekly downloads
 

Readme

Source

sftp-deployer

change to no override all, just same file.

A command-line tool for lightning-fast SFTP deployments.

  • Transfers a directory as a single compressed file
  • Minimizes downtime of target directory with blue/green deployment

SFTP deployer demo

Install

You need Node.JS to use sftp-deployer.

npm install -g sftp-deployer

Usage

The following command uploads the contents of the ./build directory to a remote SSH host, to /var/www/build:

sftp-deployer --host example.com \
  --user bob \
  --key private_key.pem \
  --local ./build \
  --target /var/www/build

Available options:

  -V, --version                output the version number
  -h, --host <host>            hostname to connect to
  -p, --port <port>            SSH port to use (defaults to 22)
  -u, --user <username>        the ssh username
  -k, --key <key_or_file>      path to private key file, or private key itself
  -l, --local <path>           directory to upload
  -t, --target <target_dir>    target directory on remote host
  -s, --staging <staging_dir>  staging directory on remote host
                               (defaults to the target directory + .staging)
  -u, --upload <upload_dir>    upload directory on remote host (default: "/var/tmp")
  --help                       display help for command

Using a configuration file

Each of the options listed above may also be specified in a configuration file called .sftp.json. For example:

{
  "host": "example.com",
  "port": 1234, /* Optional, defaults to 22 */
  "user": "bob"
  "key": "private_key.pem"
  "local": "./build",
  "target": "/var/www/build",
  "staging": "/var/www/incoming/uploads", /* Optional, defaults to target directory + .staging */
  "upload": "/my/upload/dir" /* Optional, defaults to /var/tmp */
}

You may then simply invoke sftp-deployer and it will take its input from the .sftp.json file in the current working directory.

Blue/green deployment

When a directory is uploaded but a target directory already exists, the following steps are taken to minimize downtime:

  • Deploy new directory to a staging location
  • Swap staging location and target location

This makes sure that the target directory is only down for a couple of milliseconds.

Keywords

FAQs

Last updated on 04 Apr 2021

Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc