Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/mburns/application_nodejs
Chef cookbook for deploying and configuring Node.js applications
https://github.com/mburns/application_nodejs
Last synced: 26 days ago
JSON representation
Chef cookbook for deploying and configuring Node.js applications
- Host: GitHub
- URL: https://github.com/mburns/application_nodejs
- Owner: mburns
- License: apache-2.0
- Archived: true
- Created: 2013-01-20T08:19:32.000Z (almost 12 years ago)
- Default Branch: master
- Last Pushed: 2017-03-25T11:28:38.000Z (over 7 years ago)
- Last Synced: 2024-08-03T18:16:03.867Z (4 months ago)
- Language: Ruby
- Size: 48.8 KB
- Stars: 10
- Watchers: 4
- Forks: 35
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-chef - application_nodejs
README
[![Build Status](https://travis-ci.org/mburns/application_nodejs.svg?branch=master)](https://travis-ci.org/mburns/application_nodejs)
[![Chef cookbook](https://img.shields.io/cookbook/v/application_nodejs.svg)](https://supermarket.chef.io/cookbooks/application_nodejs)## 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:
* [application](https://github.com/opscode-cookbooks/application)
* [nodejs](https://github.com/redguide/nodejs)
* [nginx](https://github.com/miketheman/nginx)## 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](http://expressjs.com):
```
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"
endpassenger_nginx do
npm true
entry_point 'cluster.js'
server_name "cluster-#{node.chef_environment}"
params :config => config
endpassenger_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 ()
Author:: Conrad Kramer ()
Author:: Jake Plimack ()
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 athttp://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.