Giter VIP home page Giter VIP logo

everypaas's Introduction

Every PaaS

Considering running your Node.JS app on a Platform-as-a-Service provider such as Heroku, dotCloud, Nodejitsu - or testing it with Travis or doing testing & continuous deployment with Strider?

EveryPaaS handles all the annoying platform-specific details so that you don't have to. EveryPaas also makes local development a breeze according to 12-factor app best practices.

EveryPaaS detects which environment your app is running in and abstracts away the details of how to connect to external resources.

If you write your app with EveryPaaS, you and your users will be able to seamlessly run it on your dev box and any of a number of platform providers - without changing a single line of code!

Supported Platforms

  • Heroku
  • Nodejitsu
  • Strider
  • Travis CI
  • dotCloud
  • Your dev box

Supported Services

  • MongoDB - everypaas.getMongodbUrl()

    • including MongoLab and MongoHQ in Heroku Marketplace
  • MySQL - everypaas.getMysqlUrl()

    • including ClearDB and Xeround in Heroku Marketplace
  • PostgreSQL - everypaas.getPostgresqlUrl()

  • Redis - everypaas.getRedisUrl()

    • including Redis To Go and Open Redis in Heroku Marketplace
  • Solr - everypaas.getSolrUrl()

    • including Web Solr in Heroku Marketplace
  • SMTP - everypaas.getSMTP()

    • including SendGrid and Mailgun in Heroku Marketplace

Installation

EveryPaaS is available in NPM. Simply type npm install everypaas to install it.

Usage

EveryPaaS has a very simple API. When you require EveryPaaS, it will detect which environment it is running in.

Example:

var everypaas = require('everypaas')

var mongodbUrl = everypaas.getMongodbUrl()

Complete API

Functions

MongoDB

everypaas.getMongodbUrl() - Returns the URL for the MongoDB service. On Heroku, this will work with both MongoLab and MongoHQ add-ons.

MySQL

everypaas.getMysqlUrl() - Returns the URL for the MySQL service. On Heroku, this will work with both ClearDB and Xeround add-ons.

PostgreSQL

everypaas.getPostgresqlUrl() - Returns the URL for the PostgreSQL service.

Redis

everypaas.getRedisUrl() - Returns the URL for the Redis service. On Heroku, this will work with both Redis To Go and Open Redis add-ons.

Solr

everypaas.getRedisUrl() - Returns the URL for the Solr service. On Heroku, this will work with the Web Solr add-on.

SMTP

everypaas.getSMTP() - Returns an argument which can be applied to nodemailer module createTransport function. On Heroku, this will work with both Mailgun and SendGrid add-ons. Example:

var everypaas = require('everypaas')
var nodemailer = require('nodemailer')

var transport = nodemailer.createTransport.apply(null, everypaas.getSMTP())
transport.sendMail({
    from: "[email protected]", // sender address
    to: "[email protected]", // list of receivers
    subject: "EveryPaaS", // Subject line
    text: "NOMP stack FTW", // plaintext body_template
    html: "<html><body>NOMP stack FTW</body></html>" // html body
  }, function(err, response) {
    // handle success / failure
  })

Properties

everypaas.paas - The detected platform. Value is one of:

  • everypaas.HEROKU (Heroku)
  • everypaas.DOTCLOUD (dotCloud)
  • everypaas.STRIDER (Strider)
  • everypaas.TRAVIS (Travis)
  • everypaas.NODEJITSU (Nodejitsu)
  • everypaas.NONE (dev box / unknown)

everypaas.herokuEnvironment - Contains the full Heroku configuration environment.

everypaas.dotCloudEnvironment - Contains the full dotCloud configuration environment. This can be useful to retrieve custom confuration variables or if you have multiple instances of the same service.

everypaas.striderEnvironment - Contains the full Strider configuration environment.

Tests

EveryPaaS has a comprehensive test suite. This can be executed by running npm test in the project root.

everypaas's People

Contributors

shin- avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.