node package manager
Love JavaScript? Your insights can make it even better. Take the 2017 JavaScript Ecosystem Survey »


Node.js - basin

Deploy sites to Amazon S3


Sometimes you want a simple, cheap, no-fuss way to deploy a static site. Amazon S3 is a decent solution for this.


npm install [-g] basin


create(dir, callback)

Generates a skeleton sample site at dir, including basin.conf.json.

var basin = require('basin')
basin.create('/tmp/basin-test', function(err) {
  //generates a skeleton example site 

deploy([dir], callback)

Deploys dir to S3. Configures all objects and bucket for web access. If dir is not specified, then present working directory is used. The directory must contain basin.conf.json.

basin.deploy(function(err, url) {
 console.log(url); // ''; 

Configuration (basin.conf.json)

  • key: required, the S3 key. Can be found on the AWS Web Console.
  • secret: required, the S3 secret. Can be found on the AWS Web Console.
  • bucket: required, the name of the bucket.
  • region: defaults to us-east-1.
  • site.index: defaults to index.html.
  • site.error: defaults to error.html.
  "key": "",
  "secret": "",
  "bucket": "",
  "region": "us-east-1",
  "site": {
    "index": "index.html",
    "error": "error.html"

Command Line Interface

Usage: basin [options]


  -h, --help       output usage information
  -V, --version    output the version number
  --create [dir]   Creates a skeleton site at the destination directory.
  --deploy         Deploys/publishes the current directory and sub directories. Must have basin.conf.json file present.
  --remote-delete  Deletes the remote S3 bucket. Must have basin.conf.json file present in current directory.


(MIT License)

Copyright 2012-2013, JP Richardson