Skip to content

Instantly share code, notes, and snippets.

@anathematic
Last active September 26, 2015 22:58
Show Gist options
  • Save anathematic/1172422 to your computer and use it in GitHub Desktop.
Save anathematic/1172422 to your computer and use it in GitHub Desktop.
Quick notes for Ruby 2 + postgres on Ubuntu 13.4

Security / user config

Ruby + basic permissions

sudo /usr/sbin/groupadd rvm
sudo /usr/sbin/usermod -a -G wheel,rvm USERNAME 
sudo apt-get install build-essential git-core curl python-software-properties libsasl2-dev mailutils
sudo su -
\curl -L https://get.rvm.io | bash -s stable --ruby
sudo apt-get install libxslt-dev libxml2-dev # Nokogiri gem
sudo apt-get install redis-server memcached

Nginx + Postgres

sudo add-apt-repository ppa:nginx/stable
sudo apt-get update
sudo apt-get install nginx
sudo service nginx start
vim /etc/apt/sources.list.d/pgdg.list
deb http://apt.postgresql.org/pub/repos/apt/ precise-pgdg main
wget --quiet -O - http://apt.postgresql.org/pub/repos/apt/ACCC4CF8.asc | sudo apt-key add -
sudo apt-get update
sudo apt-get install postgresql postgresql-server-dev-9.3 postgresql-contrib wkhtmltopdf

SSL (staging)

cd /etc/nginx
sudo mkdir ssl
cd ssl
sudo openssl genrsa -des3 -out server.key 1024
sudo openssl req -new -key server.key -out server.csr
sudo openssl rsa -in server.key.org -out server.key
sudo openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt

SSL (production)

cd /etc/nginx
sudo mkdir ssl
cd ssl
sudo openssl req -new -newkey rsa:2048 -nodes -keyout server.key -out server.csr

Ruby requirements

gem install bundler pg whenever
gem install unicorn --version=4.4.0

Postgres config

sudo su postgres
psql
CREATE DATABASE travel_prototype_production;
\l travel_prototype_production
CREATE EXTENSION hstore;
CREATE USER traveleasy WITH PASSWORD 'password;
GRANT ALL PRIVILEGES ON DATABASE travel_prototype_production to traveleasy;

Some postgres fine tuning

sudo vim /etc/postgresql/9.2/main/postgresql.conf
  shared_buffers = 64MB

Some memcached fine tuning

sudo vim /etc/memcached.conf
  # Memcache value_max_bytes store
  -I 10M
sudo vim /etc/sysctl.conf
  kernel.shmmax = 81943040
sudo sysctl -p
sudo service postgresql restart

Other tips to help speed up Postgres inserts:

synchronous_commit = false

Reinstalling a version of Ruby on a server

rvm get stable
rvm reinstall ruby-2.0.0-p195 --with-openssl-dir=/usr/local 
gem install bundler pg whenever
gem install unicorn --version=4.4.0
restart_unicorn

*** Make sure your unicorn_init.sh file is up to date

Setting up basics before we cap deploy:setup

sudo mkdir /u/
sudo chmod 755 /u/
sudo chown travel-easy:wheel /u/
cap production deploy:setup
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment