Skip to content

arenoir/ember-cli-deploy-ssh2

Repository files navigation

ember-cli-deploy-ssh2 Build Status

An ember-cli-deploy plugin to upload activate and list versioned application file/s using ssh.


**WARNING: This plugin is only compatible with ember-cli-deploy versions >= 0.5.0**

This plugin uploads, activates and lists deployed revisions. It is different from other plugins as it works with multiple applicationFiles. The primary use case is being able to keep the index.html and manifest.appcache files versioned and activated together.

Quick Start

To get up and running quickly, do the following:

$ ember install ember-cli-deploy-ssh2
  • Place the following configuration into config/deploy.js
ENV['ssh2'] = {
  host: 'webserver1.example.com',
  username: 'production-deployer',
  privateKeyPath: '~/.ssh/id_rsa',
  port: 22,
  applicationFiles: ['index.html', 'manifest.appcache'],
  root: '/usr/local/www/my-application'
}
  • Run the pipeline
$ ember deploy

Configuration Options

host

The host name or ip address of the machine to connet to.

Default: ''

username

The username to use to open a ssh connection.

Default: ''

privateKeyPath

The path to a private key to authenticate the ssh connection.

Default: '~/.ssh/id_rsa'

passphrase

The passphrase used to decrypt the privateKey.

Default: none

port

The port to connect on.

Default: '22'

applicationFiles

A list of files to upload to the server.

Default: ['index.html']

root

A function or string used to determine where to upload applicationFiles.

Note: ```This directory will not be created it must exist on server.``

Default: '/usr/local/www/' + context.project.name()

uploadDestination

A string or a function returning the path where the application files are stored.

Default:

function(context){
  return path.join(this.readConfig('root'), 'revisions');
}

activationDestination

The path that the active version should be linked to.

Default:

function(context) {
  return path.join(this.readConfig('root'), 'active');
}

activationStrategy

How revisions are activated either by symlink or copying revision directory.

Default: "symlink"

revisionManifest

A string or a function returning the path where the revision manifest is located.

Default:

function(context) {
  return path.join(this.readConfig('root'), 'revisions.json');
}

revisionMeta

A function returning a hash of meta data to include with the revision.

Default:

function(context) {
  var revisionKey = this.readConfig('revisionKey');
  var who = username.sync() + '@' + os.hostname();
          
  return {
    revision: revisionKey,
    deployer: who,
    timestamp: new Date().getTime(),
  }
}

Prerequisites

The following properties are expected to be present on the deployment context object:

The following commands require:

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

No packages published