#!/bin/bash # Update the system first sudo ntpdate ntp.ubuntu.com sudo apt-get update sudo apt-get upgrade # Ubuntu stuff sudo apt-get -y install git-core openssh-server openssh-client build-essential wget ntp-simple # be aware: vim vim-ruby installed x crap :( # Setup ruby, apache, and necessary dev libs sudo apt-get -y install ruby rdoc irb libyaml-ruby libzlib-ruby ri libopenssl-ruby ruby1.8-dev libopenssl-ruby # Ruby Enterprise Edition? REE=ruby-enterprise_1.8.6-20090421_i386.deb wget http://rubyforge.org/frs/download.php/55510/$REE sudo dpkg -i $REE rm $REE sudo ln -s /opt/ruby-enterprise/bin/* /usr/local/bin/ # rubygems and rails #wget "http://rubyforge.org/frs/download.php/45905/rubygems-1.3.1.tgz" #tar -xvzf rubygems-1.3.1.tgz #rm rubygems-1.3.1.tgz #cd rubygems-1.3.1 #sudo ruby setup.rb #cd .. #rm -r rubygems-1.3.1 #sudo ln -sf /usr/bin/gem1.8 /usr/bin/gem sudo apt-get -y install rubygems -y sudo gem update --system sudo gem sources -a http://gems.github.com sudo gem install rails --no-rdoc --no-ri # database libs #sudo apt-get install mysql-server mysql-client #sudo apt-get install libmysql-ruby libmysqlclient15-dev #sudo gem install mysql --no-rdoc --no-ri # postgresql https://help.ubuntu.com/9.04/serverguide/C/postgresql.html sudo apt-get -y install postgresql libpq-dev sudo gem install postgres --no-rdoc --no-ri # Apache2 / passenger #sudo apt-get -y install apache2 apache2-mpm-prefork apache2-prefork-dev sudo apt-get -y install apache2-mpm-prefork libapr1-dev apache2-prefork-dev sudo gem install passenger --no-rdoc --no-ri # Ruby-MRI: sudo passenger-install-apache2-module # Ruby-EE: sudo /opt/ruby-enterprise/bin/passenger-install-apache2-module sudo echo "LoadModule passenger_module /usr/lib/ruby/gems/1.8/gems/passenger-2.2.1/ext/apache2/mod_passenger.so PassengerRoot /usr/lib/ruby/gems/1.8/gems/passenger-2.2.1 PassengerRuby /usr/bin/ruby1.8" > /etc/apache2/mods-available/passenger.load sudo a2enmod passenger sudo a2enmod ssl sudo a2enmod rewrite sudo /etc/init.d/apache2 force-reload # other required gems sudo apt-get -y install libxml2 libxml2-dev sudo gem install rake rspec rspec-rails ruby-debug capistrano libxml-ruby fastercsv --no-rdoc --no-ri sudo gem install mislav-will_paginate --no-rdoc --no-ri # setup backup scripts #wget http://s3.amazonaws.com/ServEdge_pub/s3sync/s3sync.tar.gz #tar -xzvf s3sync.tar.gz #chmod 700 -R s3sync #mkdir -p ~/s3backups #sudo apt-get install git-core sudo ssh-keygen # Install an app sudo mkdir /var/app sudo chown allen:allen /var/app cd /var/app git clone ~/k23 sudo chown www-data:www-data /var/app/k23/config/environment.rb sudo echo " ServerName k23.us DocumentRoot /var/app/k23/public " >> /etc/apache2/sites-available/k23.us sudo a2ensite k23.us sudo /etc/init.d/apache2 reload ############################################################################ echo "1) add ssh keys to your github account and git clone the rest of your sensitive scripts" echo "2) edit /etc/postgresql/8.3/main/postgresql.conf to enable listen_addresses = 'localhost,127.0.0.1'" echo "3) edit /etc/postgresql/8.3/main/pg_hba.conf change md5 to trust in line: host all all 127.0.0.1/32 md5" echo "4) sudo /etc/init.d/postgresql-8.3 restart" echo "5) Check passenger version in /etc/apache2/mods-available/passenger.load"