Skip to content

Instantly share code, notes, and snippets.

@sahidursuman
Forked from bigfatgreg/setup.sh
Last active August 29, 2015 14:07
Show Gist options
  • Save sahidursuman/0ec3ecaddb01836836eb to your computer and use it in GitHub Desktop.
Save sahidursuman/0ec3ecaddb01836836eb to your computer and use it in GitHub Desktop.
#!/bin/bash
# install dependencies
apt-get update && apt-get upgrade
apt-get install build-essential bison openssl libreadline6 libreadline6-dev curl git-core zlib1g zlib1g-dev libssl-dev libyaml-dev libsqlite3-0 libsqlite3-dev sqlite3 libxml2-dev libxslt-dev autoconf libc6-dev ncurses-dev
# install RVM
\curl -L https://get.rvm.io | bash
# install ruby 2.0.0
rvm install 2.0.0
rvm use 2.0.0 --default
# install nginx + passenger
rvm gem install passenger
apt-get install libcurl4-openssl-dev
passenger-install-nginx-module
# install nginx as a service
git clone git://github.com/jnstq/rails-nginx-passenger-ubuntu.git
sudo mv rails-nginx-passenger-ubuntu/nginx/nginx /etc/init.d/nginx
sudo chown root:root /etc/init.d/nginx
chmod +x /etc/init.d/nginx
/usr/sbin/update-rc.d -f nginx defaults
##
# configure nginx
nano /opt/nginx/conf/nginx.conf
#
# add
# user www-data;
# worker_processes 4;
#
# include /opt/nginx/conf/sites-enabled/*;
##
mkdir /opt/nginx/conf/sites-enabled
mkdir /opt/nginx/conf/sites-available
# create nginx configuration files in /opt/nginx/conf/sites-available as needed
# link into sites-enabled (replace mysite with desired website name)
ln -s /opt/nginx/conf/sites-available/mysite.com /opt/nginx/conf/sites-enabled/mysite.com
# install postgresql 9.0
apt-get install python-software-properties
add-apt-repository ppa:pitti/postgresql
apt-get update
apt-get install postgresql-9.0 libpq-dev
passwd postgres
# supply password x2
$ sudo su postgres -c psql
postgres=# CREATE ROLE <username> SUPERUSER LOGIN;
postgres=# \q
##
nano /etc/postgresql/9.0/main/pg_hba.conf
# locate 'local all all ident' and change to 'local all all md5'
#
##
# restart pg
/etc/init.d/postgresql restart
# install gem dependencies
rvm gem install bundler rails pg
# create location for website files
mkdir /var/www
chown www-data /var/www
# copy rails app to /var/www/mysite
# [fix up permissions `chown www-data /var/www/mysite -R`]
#
# cd into rails app /var/www/mysite
# bundle exec rake db:create db:migrate db:seed RAILS_ENV="production"
#
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment