Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

envoy

Package Overview
Dependencies
Maintainers
1
Versions
10
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

envoy

Better Deployment with Node.js

  • 0.0.1
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
2
decreased by-84.62%
Maintainers
1
Weekly downloads
 
Created
Source

#Envoy Fast, simple deployment of static sites.

Build Status

##Goals

  • Correctness: Deployed sites should be exactly as they were on the local filesystem.
  • Speedy: Perform the bare minimum number of operations without compromising correctness.
  • Simple: One command should be all it takes to deploy to any service.

##Supported Services

  • FTP
  • S3 (Soon...)
  • Github Pages (Soon...)

##High-Level Calls


var envoy=require('envoy')
  , ftpOptions = {
      username: 'Fluffy'
    , password: 'McChubbers'
    , host:     'ftp.cheeseburger.com'
    }
  , simpleWebsite = {
      "index.html": '<h1>Welcome, Humans!</h1>'
    }
  , afterDeploy = function (err, log) {
    if(err) {
      console.err("Uh-oh: " + err);
    }
    else {
      console.log("Website Deployed!");
      
      console.log("Deployment log:");
      for(var i=0, ii=log.length; i<ii; i++) {
        console.log(log[i]);
      }
    }
  };

// Deploying a local folder to FTP
envoy.deployFolder('./my-website-folder', 'ftp', ftpOptions, afterDeploy);

// Deploying a collection of files to FTP
envoy.deployCollection(simpleWebsite, 'ftp', ftpOptions, afterDeploy);

##Low-Level Calls

You can perform lower level calls with the adapters directly.

  var client = new require('./lib/adapters/ftp')
    , opts = {username:'donkey', password:'kong'};
  
  client.before(opts, function (err) {
  
    client.put('some_file.txt', new Buffer('Some Data'), function (err) {
    
      client.after( function (err) {
        console.log("Done!");
      } );
      
    });
    
  });

All adapters support three operations

  • before
  • put
  • get
  • destroy
  • after

Certain adapters like FTP will support more operations unique to their operation

  • mkdir
  • rmdir
  • list

Take a look at the tests for more.

##Notes

  • We leave a .envoy file in the remote directory to speed up future deploys. Make sure your FTP server is configured to show dotfiles.

##Testing You need a tests/secrets.json file to run integration tests on your own server. See tests/secrets.example.json for an example.

  • FTP
    • Ensure user has write permissions
    • Server should be configured to show .dotfiles
    • Server should not auto-rename uploaded files on conflict
    • We are tested against pure-ftpd and vsftpd

Keywords

FAQs

Package last updated on 20 Jun 2013

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc