Project

General

Profile

Actions

Installing the Tapestry application » History » Revision 28

« Previous | Revision 28/47 (diff) | Next »
Tom Clegg, 09/25/2012 10:12 AM


Installing the Tapestry application

The recommended ruby stack for Tapestry is Ruby Enterprise Edition (1.8.7), installed via rvm.

Install rvm:

curl -L https://get.rvm.io | sudo bash -s stable

Install ree 1.8.7

sudo rvm install ree

Install rails.

sudo gem install rails
sudo gem install passenger
sudo /usr/local/bin/passenger-install-apache2-module

Add stuff (as provided by passenger-install) to your conf.d/passenger.conf

LoadModule passenger_module /usr/local/lib/ruby/gems/1.8/gems/passenger-3.0.9/ext/apache2/mod_passenger.so
PassengerRoot /usr/local/lib/ruby/gems/1.8/gems/passenger-3.0.9
PassengerRuby /usr/local/bin/ruby
RackEnv "development" 

Install some prerequisites for gems.

sudo apt-get install libxslt-dev libxml2-dev

Get a copy of the source tree -- e.g., in /var/www/tapestry

cd /var/www
sudo chmod a+w,+t .
git clone git://git.clinicalfuture.com/tapestry.git
sudo chmod go-w,-t .
cd tapestry && git submodule init && git submodule update

Then execute:

sudo bundle install

Point a virtualhost to the public dir in your git repo

<VirtualHost *:80>
   ServerName tapestry.example.org
   DocumentRoot /var/www/tapestry/public
   <Directory /var/www/tapestry/public>
         AllowOverride all
         Options -MultiViews
   </Directory>
   Alias /warehouse /warehouse
   <Directory /warehouse>
         Options None
         AllowOverride None
         Order allow,deny
         allow from all
   </Directory>
</VirtualHost>

Copy config/database.example to config/database.yml and edit to suit. Make sure to select mysql as the database server. Generate a password using pwgen 12 1 or head -c12345 /dev/urandom|md5sum|head -c12;echo. For example:

development:
adapter: mysql
server: localhost
database: mypg
username: mypg
password: c16fbe415d29
timeout: 5000

Copy config/environments/development.rb.sample to config/environments/development.rb and edit to suit. In particular the ROOT_URL (you may skip the "http://" prefix):

ROOT_URL = 'your.vhost.name'

Set up the database:

rake db:setup
rake db:schema:load

Set up data directory (replace USERNAME with the user who owns the GIT directory this code is in, and ROOT_URL matching the one above):

sudo mkdir -p /data/ROOT_URL
sudo chown -R USERNAME:USERNAME /data/ROOT_URL

After you do a git pull, you'll probably want to do

rake db:migrate

to bring your database up to the latest release.

If the Gemfile has changed, you will also have to run

sudo bundle install

Set up cron jobs -- for example, /etc/cron.d/tapestry-get-blog-feed

PATH=/usr/local/bin:/usr/bin:/bin
0 * * * * www-data cd /var/www/tapestry/current/script && ./get-blog-feed.rb development http://blog.personalgenomes.org/feed/

To enable large uploads with warehouse storage:

  • sudo apt-get install runit fuse-utils
  • sudo mkdir -p /etc/service/whmount/log/main
  • Set up supervised whmount service:
sudo tee /etc/service/whmount/run <<EOF >/dev/null
#!/bin/sh
modprobe fuse
mkdir -p /warehouse
chown www-data:www-data /warehouse
sudo -u www-data fusermount -u /warehouse
exec sudo -u www-data whmount --no-detach / /warehouse
EOF
sudo tee /etc/service/whmount/log/run <<EOF >/dev/null
#!/bin/sh
exec svlogd -tt main
EOF
  • Make sure config/environments/development.rb matches your Apache and filesystem mount points:
  WAREHOUSE_WEB_ROOT = "/warehouse" # Apache alias pointing to whmount target
  WAREHOUSE_FS_ROOT = "/warehouse" # whmount target

Updated by Tom Clegg about 12 years ago · 47 revisions