Skip to content
This repository has been archived by the owner on Jan 28, 2020. It is now read-only.
/ application_nodejs Public archive

Chef cookbook for deploying and configuring Node.js applications

License

Notifications You must be signed in to change notification settings

mburns/application_nodejs

Repository files navigation

Build Status Chef cookbook

Description

This cookbook is designed to be able to describe and deploy Node.js web applications using Upstart.

Note that this cookbook provides the Node-specific bindings for the application cookbook; you will find general documentation in that cookbook.

Requirements

Chef 0.12.0 or higher required (for Chef environment use).

Upstart 1.4 or higher for the use of setuid in the default Upstart configuration template. This requirement can be worked around by specifying a custom template.

The following Opscode cookbooks are dependencies:

Resources/Providers

The nodejs sub-resource LWRP deals with deploying Node.js applications using Upstart. It is not meant to be used by itself; make sure you are familiar with the application cookbook before proceeding.

The passenger_nginx sub-resource LWRP deploys nginx with passenger (for all you websocket users). The passenger_apache2 sub-resource LWRP deploys apache2 with passenger.

Attribute Parameters

  • npm: If true, npm will be used to install the dependencies specified in packages.json. Defaults to true.
  • template: The name of the template that will be used to create the Upstart configuration file. If specified, it will be looked up in the application cookbook. Defaults to nodejs.upstart.conf.erb from this cookbook.
  • entry_point: The argument to pass to node. Defaults to app.js.
  • params: Hash of ENV Variables to be rendered as passenger_set_cgi_param KEY VALUE

Usage

Here is an example hello world application using Express:

application "hello-world" do
  path "/srv/node-hello-world"
  owner "www-data"
  group "www-data"
  packages ["git"]

  repository "git://github.com/visionmedia/express.git"

  nodejs do
    entry_point "examples/hello-world"
  end

  passenger_nginx do
    npm true
    entry_point 'cluster.js'
    server_name "cluster-#{node.chef_environment}"
    params :config => config
  end

  passenger_apache2 do
    npm true
    entry_point 'cluster.js'
    server_name "cluster-#{node.chef_environment}"
    params :config => config
  end
end

License and Author

Author:: Michael Burns (michael@mirwin.net)

Author:: Conrad Kramer (conrad@kramerapps.com)

Author:: Jake Plimack (jake.plimack@gmail.com)

Copyright 2013, Kramer Software Productions, LLC.

Copyright 2014, Jake Plimack Photography, LLC.

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

About

Chef cookbook for deploying and configuring Node.js applications

Resources

License

Stars

Watchers

Forks

Packages