Installing the Tapestry application » History » Version 27
Ward Vandewege, 09/24/2012 10:45 AM
1 | 20 | Tom Clegg | h1. Installing the Tapestry application |
---|---|---|---|
2 | 1 | Tom Clegg | |
3 | 27 | Ward Vandewege | The recommended ruby stack for Tapestry is Ruby Enterprise Edition (1.8.7), installed via rvm. |
4 | |||
5 | Install rvm: |
||
6 | |||
7 | curl -L https://get.rvm.io | sudo bash -s stable |
||
8 | |||
9 | Install ree 1.8.7 |
||
10 | |||
11 | sudo rvm install ree |
||
12 | 1 | Tom Clegg | |
13 | 22 | Tom Clegg | Install rails. |
14 | 1 | Tom Clegg | |
15 | 22 | Tom Clegg | sudo gem install rails |
16 | 1 | Tom Clegg | sudo gem install passenger |
17 | sudo /usr/local/bin/passenger-install-apache2-module |
||
18 | |||
19 | Add stuff (as provided by passenger-install) to your conf.d/passenger.conf |
||
20 | |||
21 | <pre> |
||
22 | 23 | Tom Clegg | LoadModule passenger_module /usr/local/lib/ruby/gems/1.8/gems/passenger-3.0.9/ext/apache2/mod_passenger.so |
23 | PassengerRoot /usr/local/lib/ruby/gems/1.8/gems/passenger-3.0.9 |
||
24 | 1 | Tom Clegg | PassengerRuby /usr/local/bin/ruby |
25 | RackEnv "development" |
||
26 | </pre> |
||
27 | 22 | Tom Clegg | |
28 | Install some prerequisites for gems. |
||
29 | |||
30 | sudo apt-get install libxslt-dev libxml2-dev |
||
31 | 1 | Tom Clegg | |
32 | 21 | Tom Clegg | Check out git repo from git@git.clinicalfuture.com:tapestry.git to somewhere -- say, /var/www/tapestry.example.org |
33 | 1 | Tom Clegg | |
34 | 12 | Ward Vandewege | Then execute: |
35 | 1 | Tom Clegg | |
36 | 12 | Ward Vandewege | sudo bundle install |
37 | |||
38 | 3 | Tom Clegg | Point a virtualhost to the @public@ dir in your git repo |
39 | 2 | Tom Clegg | |
40 | 1 | Tom Clegg | <pre> |
41 | <VirtualHost *:80> |
||
42 | 21 | Tom Clegg | ServerName tapestry.example.org |
43 | DocumentRoot /var/www/tapestry.example.org/public |
||
44 | <Directory /var/www/tapestry.example.org/public> |
||
45 | 1 | Tom Clegg | AllowOverride all |
46 | Options -MultiViews |
||
47 | </Directory> |
||
48 | 26 | Tom Clegg | Alias /warehouse /warehouse |
49 | <Directory /warehouse> |
||
50 | Options None |
||
51 | AllowOverride None |
||
52 | Order allow,deny |
||
53 | allow from all |
||
54 | </Directory> |
||
55 | 1 | Tom Clegg | </VirtualHost> |
56 | </pre> |
||
57 | 4 | Tom Clegg | |
58 | 14 | Tom Clegg | 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: |
59 | 1 | Tom Clegg | |
60 | 14 | Tom Clegg | development: |
61 | adapter: mysql |
||
62 | server: localhost |
||
63 | 15 | Tom Clegg | database: mypg |
64 | username: mypg |
||
65 | 14 | Tom Clegg | password: c16fbe415d29 |
66 | timeout: 5000 |
||
67 | |||
68 | 18 | Madeleine Ball | 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): |
69 | 16 | Tom Clegg | |
70 | 18 | Madeleine Ball | ROOT_URL = 'your.vhost.name' |
71 | 14 | Tom Clegg | |
72 | Set up the database: |
||
73 | 1 | Tom Clegg | |
74 | rake db:setup |
||
75 | 19 | Madeleine Ball | rake db:schema:load |
76 | 18 | Madeleine Ball | |
77 | 1 | Tom Clegg | 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): |
78 | 19 | Madeleine Ball | |
79 | 18 | Madeleine Ball | sudo mkdir -p /data/ROOT_URL |
80 | 19 | Madeleine Ball | sudo chown -R USERNAME:USERNAME /data/ROOT_URL |
81 | 1 | Tom Clegg | |
82 | After you do a git pull, you'll probably want to do |
||
83 | 8 | Tom Clegg | |
84 | 10 | Ward Vandewege | rake db:migrate |
85 | |||
86 | to bring your database up to the latest release. |
||
87 | 12 | Ward Vandewege | |
88 | If the Gemfile has changed, you will also have to run |
||
89 | |||
90 | sudo bundle install |
||
91 | 25 | Tom Clegg | |
92 | Set up cron jobs -- for example, @/etc/cron.d/tapestry-get-blog-feed@ |
||
93 | |||
94 | PATH=/usr/local/bin:/usr/bin:/bin |
||
95 | 0 * * * * www-data cd /var/www/my-dev.personalgenomes.org/current/script && ./get-blog-feed.rb development http://blog.personalgenomes.org/feed/ |
||
96 | 26 | Tom Clegg | |
97 | To enable large uploads with warehouse storage: |
||
98 | |||
99 | * @sudo apt-get install runit fuse-utils@ |
||
100 | * @sudo mkdir -p /etc/service/whmount/log/main@ |
||
101 | * Set up supervised whmount service: |
||
102 | |||
103 | <pre> |
||
104 | sudo tee /etc/service/whmount/run <<EOF >/dev/null |
||
105 | #!/bin/sh |
||
106 | modprobe fuse |
||
107 | mkdir -p /warehouse |
||
108 | chown www-data:www-data /warehouse |
||
109 | sudo -u www-data fusermount -u /warehouse |
||
110 | exec sudo -u www-data whmount --no-detach / /warehouse |
||
111 | EOF |
||
112 | sudo tee /etc/service/whmount/log/run <<EOF >/dev/null |
||
113 | #!/bin/sh |
||
114 | exec svlogd -tt main |
||
115 | EOF |
||
116 | </pre> |
||
117 | |||
118 | * Make sure config/environments/development.rb matches your Apache and filesystem mount points: |
||
119 | |||
120 | <pre> |
||
121 | WAREHOUSE_WEB_ROOT = "/warehouse" # Apache alias pointing to whmount target |
||
122 | WAREHOUSE_FS_ROOT = "/warehouse" # whmount target |
||
123 | </pre> |