clojureweb-chef - chef recipes for setting up a server for Clojure deployment.
This project was born during Clojure Cup 2013 and right now I don't know anybody who use it in production, so you can be the first ;)
- Preferred way to use is to clone this repo and customize for your project
git clone git://github.com/juggler/clojureweb-chef.git --origin upstream APPLICATION-NAME-chef - Bootstrap local environment with
script/bootstrap
- Setup key based authentication to the target host (e.g.
ssh-copy-id-brew install ssh-copy-id) - Prepare target server with
script/prepare root@HOSTNAME - Customize
nodes/HOSTNAME.jsonbased on nodes/default.json - Apply configuration to target host with
script/cook user@HOSTNAME
There are 3 scripts to automate cooking process:
script/bootstrapwill installlibrarian-chefandknife-sologemsscript/preparewill download cookbooks and install Chef on target nodescript/cookwill apply recipes to the target node (you can re-run this script if you will add a new recipe or change an existing one)
deployeruser with key-based ssh authentication (you have to rename user.json.example touser.jsonand add your public key)- latest stable leiningen (based on this cookbook)
- openjdk 7
- nginx which will serve static files/pages, cache content and will act as a reverse proxy for your app server (you should read this article by JUXT team)
Checkout this deploy.rb
- do not use
flatstack[rails]cookbook because it just includes nginx
This application is based on chef-solo and Flatstack's Rails Chef recipes. Check them out for default attributes.
- Max Prokopiev
- Based on rails3-base-chef template.
MIT