Skip to content
Yet another capistrano-less deployment flow for node.js applications with grunt.
JavaScript
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
tasks
.gitignore
.jshintrc
.npmignore
Gruntfile.js
README.md
package.json

README.md

grunt-beam

Yet another capistrano-less deployment flow for node.js applications with grunt.

But attention: i would not consider it to be stable ;-) There are no tests and it's lacking a proper documentation for now, sorry!

Dependency Status

Configuration

Simple example configuration with two servers:

beam: {
    stage: {
        servers: [
            {
                host: 'server1.domain.tld',
                enterCredentials: true
            },
            {
                host: 'server1.domain.tld'
            },
            {
                host: 'xxx.xxx.xxx.xxx',
                enterCredentials: false,
                username: 'xxxx',
                privateKey: './id_rsa',
                passphrase: 'xxxxxx'
            }
        ],
        nodeUser: 'root',
        nodeEnv: 'production',
        targetPath: '/root/apps',
        releaseArchive: 'out/<%= packageInfo.name %>-<%= packageInfo.version %>.tar.gz'
    }
}

Further configuration parameters

...and its current default options:

var beamDefaultServerOptions = {
    enterCredentials: false,
    agent: process.env.SSH_AUTH_SOCK,
    pingInterval: 3000,
    port: 22,
    username: 'root'
};

var beamDefaultOptions = {
    appName: packageInfo.name,
    packageInfo: packageInfo,
    releaseArchive: './release.tar.gz',
    releaseArchiveTarget: 'RELEASE.tar.gz',
    releaseFolderName: 'releases',
    currentLinkName: 'current',
    logFolderName: 'logs',
    targetPath: '/var/apps',
    releaseName: packageInfo.name+'-'+packageInfo.version,
    nodeUser: '',
    nodeEnv: '',
    nodeEnvExtras: '',
    nodeBinary: 'node',
    npmBinary: 'npm',
    npmInstallOptions: '--production',
    appCommand: packageInfo.main || 'index.js',
};

Supported commands

Usage:          grunt beam:<group>

Possible parameters:
--redeploy      Normal deployment but cleans target directory before
--undeploy      Will undeploy your node application. That means: stopping the application and remove all files which belong to the release. (Attention includes default log-path)
--remove        Undeploys and removes all application data
--rollback      Lets you choose a release from the server which has been deployed before
--clean         Lets you choose which old releases should be removed from the server
--restart       Restarts the application on the configured servers
--uptime        Prints the uptime on the configured servers
--log           Prints the last 20 lines of std and err log
Something went wrong with that request. Please try again.