An automated tool to deploy untracked files to servers (such as images) through the use of SFTP.



The Node-package-manager (npm) is the recommended way to install deployme. To install via npm, run npm install deployme -g. The -g parameter specifies that the package should be installed globally, which is recommended for nearly every use case.

In addition, there are a few other varieties to installing via npm:

# install through this GitHub repository
npm install panchr/deployme -g

# Install directly through GitHub
npm install https://github.com/panchr/node-deployme.git -g


To install via git, run these commands in your terminal of choice:

git clone https://github.com/panchr/node-deployme.git
cd node-deployme

Now, you can directly access the CLI (Command Line Interface) by using ./bin/cli. Again, I highly recommend using npm instead.


The CLI tool uses the default configuration file, .deploy-config. To generate a standard configuration file, run deployme init. This will generate the configuration file in the current directory.

Note: deployme will search for a .deploy-config file in any of the parent directories of the current working directory. So, it is possible to run the tool in any subdirectory of a project.

The configuration options are stored as standard JSON.

name description type default value
host The host name of the server String "localhost"
port Port to connect to the server with int 22
username The username to connect with String "root"
password The password of the above user String ""
local An object of local configuration Object {}
local.root The local root of the files to sync String "."
local.directories The local directories to sync Array []
local.files The local files to sync (not supported yet) Array []
remote An object of remote configuration Object {}
remote.root The remote root to sync to String "/"

For example, here is a sample configuration file:

    "host": "myserver.io",
    "port": 22,
    "username": "panchr",
    "password": "v3rys3cure",
    "local": {
        "root": "static",
        "directories": ["images", "icons"],
        "files": ["myfavicon.ico", "secure.js"]
    "remote": {
        "root": "/var/www/site"


deployme comes with a few useful commands:


This is the initialization script. To use it, run deployme init. It will walk you through the setup of the main configuration file, .deploy-config.


Reset is very similar to init. In fact, it provides the same functionality but allows you to override previous options. It is invoked via deployme reset.


To get a list of commands and what they do, use deployme help.


To see what the files that need to be synced, run deployme diff.


Finally, deployme sync will calculate the required changes to be synced and then upload the appropriate files to the remote server.


deployme local provides a series of subcommands that allows you to configure the local settings of the syncer:

Subcommand Argument Description Example
root path Set the local root path to the file path deployme local root /static
add path Add a local path to be synced deployme local add /test
add glob pattern Add matching local paths to be synced deployme local add *.css
remove path Remove a local path from being synced deployme local remove mystyle.css
remove glob pattern Remove matching local paths from being synced deployme local remove test/*


deployme remote only provides one command so far, but more will be added soon. Each subcommand allows you to configure the remote settings of the syncer:

Subcommand Argument Description Example
root filepath Set the remote root path to "filepath" deployme remote root /var/www/static