mina
Version: 
Lightweight deployer for node development, inspired by mina and minco
75 lines (59 loc) • 2.63 kB
Markdown
# Mina [](http://badge.fury.io/js/mina)
[](https://nodei.co/npm/mina/)
A simple deploy tool inspired by [mina](http://nadarei.co/mina), based on [minco](https://github.com/dsmatter/minco). This project is powered by [node](http://nodejs.org), forcus on quick and lightweight deployment and server automation over ssh for [node](http://nodejs.org) projects.
## Latest Version
[v1.0.6](https://npmjs.org/package/mina)
## Installation
Make sure you have installed node.js including NPM
    sudo npm install -g mina
## Bash completion
Add this to your .bashrc, In this version only support bash
    eval "$(mina completion=bash)"
## Usage
    # Create an example deploy.json
    mina init
    # Adjust it to your needs in deploy.json
    {
        // Servers to deploy to
        "server": ["user@host1","user@host2"]
        // Port
        , "port": 13
        // Deploy to this dir on server
        , "server_dir": "/path/to/dir/on/server"
        // Git repository, only support git right now
        , "repo": "git@github.com:user/repo.git"
        // If you have more than one project in your git repo,
        // e.g. "projects/project_luna"
        , "prj_git_relative_dir": ""
        // Branch to be checkout and deploy
        , "branch": "master"
        // If remove git cloned directory then git clone again,
        // default is false
        , "force_regenerate_git_dir": false
        // Directories of your project in this array will use a
        // symbolic instead create every time when run deploy
        , "shared_dirs": ["node_modules", "db"]
        // How many release snapshots keep away from auto cleanup,
        // default is 10 if not presents
        , "history_releases_count": 10
        // Run customize scripts before run
        , "prerun": [
          "npm install",
          "npm test"
        ]
        // Start run your project
        , "run_cmd": "npm start"
    }
    # Deploy
    mina deploy
    # Or, indicate deploy config file
    MINA_CONFIG=deploy_scripts/to_dev.json mina deploy
## Keep in mind...
+ You have to ensure the username used for ssh have permission for operating directories
+ You have to ensure the remote server could execute `git clone`, that's means `git-core` must be installed, and, can clone the project from you git-repo.
## Contributors
+ Neal <neal.ma.sh@gmail.com>
+ Houjiazong <houjiazong@gmail.com>
+ BordenJardine <bordenjardine@gmail.com>
+ [Marcus Vorwaller](https://github.com/marcus)
+ [Allan Wind](https://github.com/allanwind)