This note will walk you though setting up and securing a Ubuntu 10.04 LTS then deploying a Rails application with mulit-stage deployment.
TODO:
- Add section for NGINX setup
| cd ~ | |
| sudo apt-get update | |
| sudo apt-get install curl python-software-properties -y | |
| sudo apt-get install openjdk-6-jre-headless | |
| curl -L http://download.elasticsearch.org/elasticsearch/elasticsearch/elasticsearch-0.20.2.tar.gz | tar -xz | |
| sudo mv elasticsearch-* /usr/local/share/elasticsearch | |
| curl -L http://github.com/elasticsearch/elasticsearch-servicewrapper/tarball/master | tar -xz | |
| sudo mv *servicewrapper*/service /usr/local/share/elasticsearch/bin/ | |
| rm -Rf *servicewrapper* |
| upstream app { | |
| server unix:/srv/app/current/tmp/sockets/unicorn.sock fail_timeout=0; | |
| } | |
| server { | |
| listen 80; | |
| server_name www.app.com; | |
| rewrite ^/(.*) http://app.com/$1 permanent; | |
| } | |
| server { |
| # Apt-install various things necessary for Ruby, guest additions, | |
| # etc., and remove optional things to trim down the machine. | |
| apt-get -y update | |
| apt-get -y remove apparmor | |
| apt-get -y install linux-headers-$(uname -r) build-essential | |
| apt-get -y install zlib1g zlib1g-dev libxml2 libxml2-dev libxslt-dev libssl-dev openssl libreadline5-dev | |
| apt-get clean | |
| # Remove this file to avoid dhclient issues with networking | |
| rm -f /etc/udev/rules.d/70-persistent-net.rules |
| require 'rubygems' unless defined? Gem # rubygems is only needed in 1.8 | |
| def unbundled_require(gem) | |
| loaded = false | |
| if defined?(::Bundler) | |
| Gem.path.each do |gems_path| | |
| gem_path = Dir.glob("#{gems_path}/gems/#{gem}*").last | |
| unless gem_path.nil? | |
| $LOAD_PATH << "#{gem_path}/lib" |
| (function(window,undefined){ | |
| // Prepare our Variables | |
| var | |
| document = window.document, | |
| $ = window.jQuery; | |
| // Wait for Document | |
| $(window).bind(function(){ | |
| // Prepare Variables |
| // my little html string builder | |
| buildHTML = function(tag, html, attrs) { | |
| // you can skip html param | |
| if (typeof(html) != 'string') { | |
| attrs = html; | |
| html = null; | |
| } | |
| var h = '<' + tag; | |
| for (attr in attrs) { | |
| if(attrs[attr] === false) continue; |
| $ ruby -e 'exit' | |
| $ echo $? | |
| 0 | |
| $ ruby -e 'exit 1' | |
| $ echo $? | |
| 1 | |
| $ ruby -e 'abort "oh no"' | |
| oh no | |
| $ echo $? | |
| 1 |
| // It is important to declare your variables. | |
| (function() { | |
| var foo = 'Hello, world!'; | |
| print(foo); //=> Hello, world! | |
| })(); | |
| // Because if you don't, the become global variables. | |
| (function() { |
| # | |
| # = Capistrano database.yml task | |
| # | |
| # Provides a couple of tasks for creating the database.yml | |
| # configuration file dynamically when deploy:setup is run. | |
| # | |
| # Category:: Capistrano | |
| # Package:: Database | |
| # Author:: Simone Carletti <[email protected]> | |
| # Copyright:: 2007-2010 The Authors |