joerichsen / passenger-stack forked from benschwarz/passenger-stack

Sprinkles for Apache, Passenger, Memcached, Git, Mysql or Postgres

This URL has Read+Write access

joerichsen (author)
Sun Jun 21 13:18:19 -0700 2009
commit  b761c4d3683f783c49d6b6eda07883ee8f9aa173
tree    5b413a9f4de148670fbd02c3ba144d9bdd95c4ef
parent  d98d25644d5b9f77a80328114a041887162d5809
name age message
file .gitignore Fri Mar 13 05:18:41 -0700 2009 ignore config/deploy.rb Signed-off-by: Ben Sch... [markmansour]
file Capfile Mon Dec 22 22:23:25 -0800 2008 Added first cut of scripts to the repository A... [Ben Schwarz]
file README.markdown Tue Mar 17 06:10:42 -0700 2009 Updated README to reflect new gzip, expires and... [Ben Schwarz]
directory config/ Loading commit data...
README.markdown

Passenger stack, zero to hero in under five minutes

Scripts for Sprinkle, the provisioning tool

Watch the demo screen cast of passenger-stack.

How to get your sprinkle on:

  • Get a brand spanking new slice / host (Ubuntu please)
  • Create yourself a user, add yourself to the /etc/sudoers file
  • Set your slices url / ip address in deploy.rb (config/deploy.rb.example provided)
  • Set username in config/deploy.rb if it isn't the same as your local machine (config/deploy.rb.example provided)

From your local system (from the passenger-stack directory), run:

sprinkle -c -s config/install.rb

After you've waited for everything to run, you should have a provisioned slice. Go forth and install your custom configurations, add vhosts and other VPS paraphernalia.

My app isn't running!?

No superfluous configuation is included, these scripts focus purely on slice installation. Having said that passenger is configured to work with apache, your application should pretty much be a 'drop in' install.

Read these tips to get you humming

Other things you should probably consider:

  • Close everything except for port 80 and 22
  • Disallow password logins and use a passphrased RSA key

Wait, what does all this install?

  • Apache (Apt)
    • Scripts and stylesheets are compressed using mod_deflate
    • ETags are applied to static assets
    • Expires headers are applied to static assets
  • Ruby Enterprise (Source) [includes rubygems]
  • Passenger (Rubygem)
  • Memcached (Apt)
  • Libmemcached (Source)
  • MySQL (Apt) or PostgreSQL (Apt)
  • MySQL or PostgreSQL ruby database drivers (Rubygem)
  • Git (Apt)

Requirements

  • Ruby
  • Capistrano
  • Sprinkle (github.com/crafterm/sprinkle)
  • An Ubuntu based VPS (known to not work on Debian Etch†)

Thanks

Disclaimer

Don't run this on a system that has already been deemed "in production", its not malicious, but there is a fair chance that you'll ass something up monumentally. You have been warned.

Footnotes

† This issue lies between differences in apt between debian and ubuntu, my feedback has been forwarded and discussed with Marcus, the author of sprinkle. I believe he is looking into it.