forked from documentcloud/documentcloud
-
Notifications
You must be signed in to change notification settings - Fork 0
/
INSTALL
115 lines (83 loc) · 4.69 KB
/
INSTALL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
Until we have full provisioning scripts, keep notes about everything that we
touch on EC2 in here.
========================= Base DocumentCloud Image ============================
====================== dcworker has all the steps below ======================
==================== based on the snap-05235d6c snapshot ======================
* Use the official Canonical Ubuntu 10.04 Lucid Image: ami-714ba518
Use the us-east-1c availability zone.
* If bundling an EBS Boot Volume, follow the directions here (mas o menos):
http://alestic.com/2010/01/ec2-ebs-boot-ubuntu
At step 5, continue with our custom configuration below....
* Switch to a temporary directory.
* Update aptitude.
* Install these packages:
build-essential postgresql postgresql-client postgresql-contrib libpq-dev \
sun-java6-bin git-core mercurial scons libexpat-dev libxml2-dev libxslt-dev \
postfix ruby ri rdoc irb ruby1.8-dev zlib1g-dev libzlib-ruby sqlite3 \
libsqlite3-dev libcurl4-dev checkinstall libbz2-dev graphicsmagick pdftk xpdf \
libitext-java openoffice.org openoffice.org-java-common libtiff4-dev \
libpng12-dev libjpeg62-dev libleptonica-dev tesseract-ocr-dev tesseract-ocr-eng \
xfsprogs libpcre3-dev graphicsmagick
* Install RubyGems:
DO NOT INSTALL RUBYGEMS THROUGH APT-GET (or you'll live to regret it)
wget http://production.cf.rubygems.org/rubygems/rubygems-1.3.7.tgz && \
tar xzvf rubygems-1.3.5.tgz
ruby rubygems-1.3.5/setup.rb
ln -s /usr/bin/gem1.8 /usr/local/bin/gem
sudo gem update --system
* Install these gems (--no-ri --no-rdoc):
pg sqlite3-ruby rails passenger sinatra right_aws rest-client rack \
bcrypt-ruby rdiscount rubyzip libxml-ruby nokogiri json hpricot calais \
curb daemons cloud-crowd yui-compressor jammit docsplit sunspot sunspot_rails
* Add the gem bin directory to the path, in .bashrc.
export PATH="$PATH:/var/lib/gems/1.8/bin"
* Install Node.js (from source, unfortunately): Nodejs.org (v0.1.99)
* Install the SSH credentials (for the current user, root on the EBS chroot):
mkdir -p ~/.ssh (or /root/.ssh)
Copy the contents of secrets/keys/github.pem to .ssh/id_dsa
chmod 0600 .ssh/id_dsa
* Checkout DocumentCloud:
git clone [email protected]:documentcloud/documentcloud.git ~/documentcloud
* Checkout Pixel Ping:
git clone [email protected]:documentcloud/pixel-ping.git ~/pixel-ping
* Turn off smtpd_use_tsl in /etc/postfix/main.cf.
* Check out the latest stable nginx source, then use
passenger-install-nginx-module to install a custom nginx (0.8.53),
with prefix /usr/local/nginx, and including
--with-http_gzip_static_module --with-http_ssl_module
* Copy over the nginx.conf config from config/server/nginx to /usr/local/nginx/conf.
Copy over the appropriate environment config to sites-enabled.
Add /usr/local/nginx/sbin to the PATH in .bashrc.
mkdir -p /var/log/nginx
* In /etc/sysctl.conf set
kernel.shmmax = 852352256
* Copy over config/server/postgresql.conf to
/etc/postgresql/8.4/main/postgresql.conf
* Copy over config/server/gitconfig.conf to ~/.gitconfig
* If bundling, move on to Step 6 of Hammond's directions, but ensure that
EC2_CERT and EC2_PRIVATE_KEY are set correctly, and that the size of the EBS
is 40 GB. You can use a better name for the $prefix, and a better description.
Also, use availability zone 1c.
* Clean up the temporary directory.
============================= Postgres EBS ===================================
* Follow the directions here:
http://deadprogrammersociety.blogspot.com/2009/08/postgresql-on-ubuntu-on-ec2.html
Follow Mike's directions to move the Postgres files to the EBS:
http://gist.github.com/272258
Copy over configuration from config/server/postgres to /etc/postgresql/8.4/main...
pg_ctlcluster 8.4 main start
Our postgre DB (volume vol-d4c305bd) is mounted at /data.
* Install the HStore module, by cd-ing into the contrib directory of your postgres, and following the directions here:
http://www.postgresql.org/docs/8.3/static/contrib.html
============================= Development ====================================
* Install the dependencies and gems listed in PROVISIONING, as appropriate
(ie, don't install Tesseract unless you're planning on doing OCR).
* Configure Nginx and /etc/hosts to serve dev.dcloud.org locally. An example
Nginx configuration is stored in config/server/nginx
* Load the development_structure.sql into the database listed in config/database.yml.
Load the analytics_structure.sql into the database listed in config/database_analytics.yml
* Create your CloudCrowd database, using the config/cloud_crowd/development
configuration folder.
* Start a local CloudCrowd server and node, with
`rake crowd:server:start crowd:node:start`
* Start Nginx.