1.0.1 • Published 5 years ago

simple-ssh-deploy v1.0.1

Weekly downloads
6
License
MIT
Repository
github
Last release
5 years ago

Simple SSH Deploy

Simple node.js tool for deploying files and running commands over SSH

Installation

$ npm install simple-ssh-deploy --save-dev

Usage

const simpleSSHDeploy = require('simple-ssh-deploy');

simpleSSHDeploy(config)
    .then(() => {
        // deploy succeeded
    })
    .catch(error => {
        // deploy failed
    });

Config

const config = {
    // example SSH authentication object. For more auth options look here: https://github.com/mscdex/ssh2#client-methods
    auth: {
        host: string; // hostname or IP address
        port?: number; // by default is set to 22
        username?: string;
        password?: string;
    };
    localFiles?: string | string[]; // glob string or array of local files paths (array of glob strings is not supported)
    remotePath?: string; // path on remote server where files will be copied
    preDeploy?: string[]; // array of commands to be executed on remote server before files deploy
    postDeploy?: string[]; // array of commands to be executed on remote server after files deploy
    silent?: boolean; // disable logging to console, by default is set to false
};

Commands in preDeploy array are independent of each other and executed synchronously. If you want one command to depend on another use && (example below). If a command throws an error then deploy stops and fails. To prevent this behavior use 2> /dev/null or similar tricks (example below). The same apply to postDeploy commands.

Example config:

const config = {
    auth: {
        host: '123.123.123.123',
        username: 'user',
        password: 'passwd'
    },
    localFiles: './build/**/*.js', // or array ['./build/file1.js', 'build/file2.js', 'D:/project/build/file3.js']
    remotePath: '/home/user/app',
    preDeploy: ['df -m', 'cd /home/user/app && ls', 'cd /home/user/app && rm file1.js 2> /dev/null'],
    postDeploy: ['cd /home/user/app && node file1.js']
};

License

Copyright © 2018 rdoo. Released under the MIT license.