Skip to content

rdoo/simple-ssh-deploy

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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.

About

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

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published