# Production Install (Ubuntu 14.04 x64 or Debian 7) ## Capistrano setup SSH as a user with sudo access, update package lists and upgrade packages (new install only) sudo apt-get update sudo apt-get upgrade Either use an existing sandboxed user account, or create a deploy user and disable password authentication. Instead, authenticate with a keypair. sudo adduser deploy sudo passwd -l deploy ## Install Apache sudo apt-get install apache2 apache2-mpm-prefork Now create the required directories, e.g. `/var/www/virtual/ensl.org/deploy` ## Install MySQL & Memcached You may need to re-configure MySQL. Use `sudo dpkg-reconfigure mysql-server-5.5` sudo apt-get install mysql-server mysql-client libmysqlclient-dev memcached Login to mysql as root, and create the database and user account: CREATE DATABASE `ensl`; CREATE USER 'xxx'@'localhost' IDENTIFIED BY 'xxx'; GRANT ALL PRIVILEGES ON ensl.* TO 'xxx'@'localhost' WITH GRANT OPTION; ## Install rbenv, ruby, bundler and Image Magick As a user with sudo, install dependencies sudo apt-get install git-core curl zlib1g-dev build-essential libssl-dev libreadline-dev libyaml-dev libsqlite3-dev sqlite3 libxml2-dev libxslt1-dev imagemagick libmagickwand-dev Switch user to deploy, and install rbenv su deploy cd ~ git clone git://github.com/sstephenson/rbenv.git .rbenv echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc echo 'eval "$(rbenv init -)"' >> ~/.bashrc exec $SHELL git clone git://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build echo 'export PATH="$HOME/.rbenv/plugins/ruby-build/bin:$PATH"' >> ~/.bashrc exec $SHELL rbenv install 2.1.3 rbenv global 2.1.3 echo "gem: --no-ri --no-rdoc" > ~/.gemrc gem install bundler ## Install the ENSL site Create the `.env` file by copying `.env.example` with the appropriate credentials. cp /var/www/virtual/ensl.org/deploy/shared/.env.example /var/www/virtual/ensl.org/deploy/shared/.env # Deployment Use capistrano to deploy: bundle exec cap production deploy