Commit 618e5b4e1fad12baa1b3580fb00ba125095b52cc
1 parent
f1979c27
Exists in
master
and in
39 other branches
Removed out-dated install docs
Showing
1 changed file
with
0 additions
and
421 deletions
Show diff stats
install.rst
@@ -1,421 +0,0 @@ | @@ -1,421 +0,0 @@ | ||
1 | -.. -*- coding: utf-8 -*- | ||
2 | - | ||
3 | -.. highlight:: rest | ||
4 | - | ||
5 | -.. _colab_software: | ||
6 | - | ||
7 | -================================= | ||
8 | -Installing a full colab environment | ||
9 | -================================= | ||
10 | - | ||
11 | -This file will guide you through the installation of colab's dependencys, | ||
12 | -external tools and its integration with colab to help you start using/working. | ||
13 | - | ||
14 | -The dependecys installation steps will be based of Ubuntu 13.04 but the tools, | ||
15 | -integrations and the colab itself runs in a virtual machine so it'll be the same regardless of your system. | ||
16 | - | ||
17 | - | ||
18 | -Fabric + VirtualBox + Vagrant | ||
19 | -============== | ||
20 | - | ||
21 | -You can easily install fabric using pip with | ||
22 | - | ||
23 | -.. code-block:: | ||
24 | - | ||
25 | - sudo apt-get install python-pip | ||
26 | - sudo pip install fabric | ||
27 | - | ||
28 | -You can also instal Virtual Box with apt-get | ||
29 | - | ||
30 | -.. code-block:: | ||
31 | - | ||
32 | - sudo apt-get install virtualbox | ||
33 | - | ||
34 | -Now, vagrant has an apt-get but its not supported anymore, so you'll have to manually download and install it from the site | ||
35 | - | ||
36 | - https://www.vagrantup.com/downloads.html | ||
37 | - | ||
38 | -Starting the VM and environment | ||
39 | -=============================== | ||
40 | - | ||
41 | -Clone the repository to your system | ||
42 | - | ||
43 | -.. code-block:: | ||
44 | - | ||
45 | - git clone https://github.com/colab-community/colab.git | ||
46 | - cd colab | ||
47 | - | ||
48 | -Create your local configuration file(we'll adjust it later) | ||
49 | - | ||
50 | -.. code-block:: | ||
51 | - | ||
52 | - cp src/colab/local_settings-dev.py src/colab/local_settings.py | ||
53 | - | ||
54 | -To startup the VM simple do | ||
55 | - | ||
56 | -.. code-block:: | ||
57 | - | ||
58 | - vagrant up | ||
59 | - | ||
60 | -*NOTE* | ||
61 | - | ||
62 | - In case you have problems creating the virtual machine you might need to download the linux header files | ||
63 | - | ||
64 | - .. code-block:: | ||
65 | - | ||
66 | - linux-headers-generic | ||
67 | - | ||
68 | -Accessing the VM and configurating the database | ||
69 | -=============================================== | ||
70 | - | ||
71 | -You should now be able to access your VM through | ||
72 | - | ||
73 | -.. code-block:: | ||
74 | - | ||
75 | - vagrant ssh | ||
76 | - | ||
77 | -*NOTE* | ||
78 | - | ||
79 | - In case you get a connection port refused or ssh error, you might need to activate manually an ssh server(rare) | ||
80 | - | ||
81 | - .. code-block:: | ||
82 | - | ||
83 | - sudo apt-get install ssh; sudo service ssh start; | ||
84 | - | ||
85 | -The VM doesnt come with a databse so, you'll need to install one inside it. | ||
86 | -Inside de VM download and install postgresql | ||
87 | - | ||
88 | -.. code-block:: | ||
89 | - | ||
90 | - sudo apt-get install postgresql | ||
91 | - | ||
92 | -Access the postgresql database and create a new database and user colab user | ||
93 | - | ||
94 | -.. code-block:: | ||
95 | - | ||
96 | - sudo -u postgres psql | ||
97 | - CREATE USER colab SUPERUSER INHERIT CREATEDB CREATEROLE; | ||
98 | - ALTER USER colab PASSWORD 'colab'; | ||
99 | - CREATE DATABASE colab; | ||
100 | - | ||
101 | -Also, create the Trac's database(note it needs to support UTF8) | ||
102 | - | ||
103 | -.. code-block:: | ||
104 | - | ||
105 | - create database "trac_colab" with owner "colab" encoding 'UTF8' LC_COLLATE = 'en_US.UTF-8' LC_CTYPE = 'en_US.UTF-8' TEMPLATE=template0; | ||
106 | - \q | ||
107 | - | ||
108 | -That's the database used for Trac, but its needed so colab can make its migrations correctly and adjust solr accordinly | ||
109 | - | ||
110 | -Installing Trac on the VM | ||
111 | -========================= | ||
112 | - | ||
113 | -Inside the VM(vagrant ssh) download e install trac | ||
114 | - | ||
115 | -.. code-block:: | ||
116 | - | ||
117 | - sudo apt-get install trac | ||
118 | - sudo pip install --upgrade Trac | ||
119 | - | ||
120 | -Now you'll need to configure trac so it can access the previously created database. | ||
121 | - | ||
122 | -.. code-block:: | ||
123 | - | ||
124 | - mkdir -p /var/local/trac | ||
125 | - sudo trac-admin /var/local/trac initenv | ||
126 | - | ||
127 | -Set the project name to 'Colab' when asked, and the following postgresql connection string | ||
128 | - | ||
129 | -.. code-block:: | ||
130 | - | ||
131 | - postgres://colab:colab@/trac_colab?host=localhost | ||
132 | - | ||
133 | -The trac database should be populated with relations, now need to give trac write access to its folders | ||
134 | - | ||
135 | -.. code-block:: | ||
136 | - | ||
137 | - sudo chown -R www-data /var/local/trac | ||
138 | - sudo chmod -R 775 /var/local/trac | ||
139 | - | ||
140 | -Finally, trac can be run by | ||
141 | - | ||
142 | -.. code-block:: | ||
143 | - | ||
144 | - tracd --port 5000 /var/local/trac | ||
145 | - | ||
146 | -Use port 8000 and access it on port 8080 in your local machine to see it works if you'd like(vagrant has port redirects) | ||
147 | - | ||
148 | -Installing Solr and indexing colab's schemas | ||
149 | -========================================== | ||
150 | -In Progress of making it readable | ||
151 | - #http servlet jetty | ||
152 | - sudo apt-get install jetty | ||
153 | - | ||
154 | - #solr | ||
155 | - wget http://ftp.unicamp.br/pub/apache/lucene/solr/4.6.1/solr-4.6.1.tgz | ||
156 | - tar xvzf solr-4.6.1.tgz | ||
157 | - sudo mv solr-4.6.1 /usr/share/solr | ||
158 | - | ||
159 | - sudo cp /usr/share/solr/example/webapps/solr.war /usr/share/solr/example/solr/solr.war | ||
160 | - | ||
161 | - python manage.py build_solr_schema >> schema.xml | ||
162 | - #existe mais de uma referencia a stopwords_en | ||
163 | - trocar no schema.xml stopwords_en.txt por lang/stopwords_en.txt | ||
164 | - | ||
165 | - sudo cp schema.xml /usr/share/solr/example/solr/collection1/conf | ||
166 | - | ||
167 | - #inclusive a tag | ||
168 | - Remova <updateLog> em solrconfig.xml localizado em /usr/share/solr/example/solr/collection1/conf | ||
169 | - | ||
170 | - #executa servidor | ||
171 | - cd /usr/share/solr/example/; java -jar start.jar; | ||
172 | - | ||
173 | - #indexa | ||
174 | - python manage.py update_index | ||
175 | - | ||
176 | - | ||
177 | -Installing Mailman with Nginx | ||
178 | -============================= | ||
179 | - | ||
180 | -Nginx Configuration: | ||
181 | - | ||
182 | -In order to let nginx serve the Mailman web interface, we need to have the fcgiwrap package installed: | ||
183 | - | ||
184 | -.. code-block:: | ||
185 | - | ||
186 | - sudo apt-get install fcgiwrap | ||
187 | - | ||
188 | -Setting the vhost: | ||
189 | - | ||
190 | -Create the www.example.com web site root as follows: | ||
191 | - | ||
192 | -.. code-block:: | ||
193 | - | ||
194 | - mkdir -p /var/www/www.example.com/web | ||
195 | - | ||
196 | -Next create a basic nginx vhost configuration editing the .vhost file (editor /etc/nginx/sites-available/www.example.com.vhost): | ||
197 | - | ||
198 | -.. code-block:: | ||
199 | - | ||
200 | - server { | ||
201 | - listen 8000; | ||
202 | - server_name www.example.com example.com; | ||
203 | - root /var/www/www.example.com/web; | ||
204 | - if ($http_host != "localhost:8080") { | ||
205 | - rewrite ^ localhost$request_uri permanent; | ||
206 | - } | ||
207 | - index index.php index.html; | ||
208 | - location = /favicon.ico { | ||
209 | - log_not_found off; | ||
210 | - access_log off; | ||
211 | - } | ||
212 | - location = /robots.txt { | ||
213 | - allow all; | ||
214 | - log_not_found off; | ||
215 | - access_log off; | ||
216 | - } | ||
217 | - # Deny all attempts to access hidden files such as .htaccess, .htpasswd, .DS_Store (Mac). | ||
218 | - location ~ /\. { | ||
219 | - deny all; | ||
220 | - access_log off; | ||
221 | - log_not_found off; | ||
222 | - } | ||
223 | - location ~* \.(jpg|jpeg|png|gif|css|js|ico)$ { | ||
224 | - expires max; | ||
225 | - log_not_found off; | ||
226 | - } | ||
227 | - } | ||
228 | - | ||
229 | -To enable the vhost, we create a symlink to it from the /etc/nginx/sites-enabled/ directory: | ||
230 | - | ||
231 | -.. code-block:: | ||
232 | - | ||
233 | - cd /etc/nginx/sites-enabled/ | ||
234 | - ln -s /etc/nginx/sites-available/www.example.com.vhost www.example.com.vhost | ||
235 | - | ||
236 | -Reload nginx for the changes to take effect: | ||
237 | - | ||
238 | -.. code-block:: | ||
239 | - | ||
240 | - /etc/init.d/nginx reload | ||
241 | - | ||
242 | -Mailman Configuration: | ||
243 | - | ||
244 | -.. code-block:: | ||
245 | - | ||
246 | - sudo apt-get install mailman | ||
247 | - | ||
248 | -Create a new mailing list: | ||
249 | - | ||
250 | -.. code-block:: | ||
251 | - | ||
252 | - sudo newlist mailman | ||
253 | - | ||
254 | -Open the /etc/aliases (editor /etc/aliases) and add the following: | ||
255 | - | ||
256 | -.. code-block:: | ||
257 | - | ||
258 | - mailman: "|/var/lib/mailman/mail/mailman post mailman" | ||
259 | - mailman-admin: "|/var/lib/mailman/mail/mailman admin mailman" | ||
260 | - mailman-bounces: "|/var/lib/mailman/mail/mailman bounces mailman" | ||
261 | - mailman-confirm: "|/var/lib/mailman/mail/mailman confirm mailman" | ||
262 | - mailman-join: "|/var/lib/mailman/mail/mailman join mailman" | ||
263 | - mailman-leave: "|/var/lib/mailman/mail/mailman leave mailman" | ||
264 | - mailman-owner: "|/var/lib/mailman/mail/mailman owner mailman" | ||
265 | - mailman-request: "|/var/lib/mailman/mail/mailman request mailman" | ||
266 | - mailman-subscribe: "|/var/lib/mailman/mail/mailman subscribe mailman" | ||
267 | - mailman-unsubscribe: "|/var/lib/mailman/mail/mailman unsubscribe mailman" | ||
268 | - | ||
269 | -Run: | ||
270 | - | ||
271 | -.. code-block:: | ||
272 | - | ||
273 | - sudo newaliases | ||
274 | - | ||
275 | -Now restart postfix and mailman: | ||
276 | - | ||
277 | -.. code-block:: | ||
278 | - | ||
279 | - sudo /etc/init.d/postfix restart | ||
280 | - sudo /etc/init.d/mailman start | ||
281 | - | ||
282 | -Open /etc/nginx/sites-available/www.example.com.vhost and add the following part to the server {} container: | ||
283 | - | ||
284 | -.. code-block:: | ||
285 | - | ||
286 | - server { | ||
287 | - [...] | ||
288 | - location /cgi-bin/mailman { | ||
289 | - root /usr/lib/; | ||
290 | - fastcgi_split_path_info (^/cgi-bin/mailman/[^/]*)(.*)$; | ||
291 | - include /etc/nginx/fastcgi_params; | ||
292 | - fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; | ||
293 | - fastcgi_param PATH_INFO $fastcgi_path_info; | ||
294 | - fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info; | ||
295 | - fastcgi_intercept_errors on; | ||
296 | - fastcgi_pass unix:/var/run/fcgiwrap.socket; | ||
297 | - } | ||
298 | - location /images/mailman { | ||
299 | - alias /usr/share/images/mailman; | ||
300 | - } | ||
301 | - location /pipermail { | ||
302 | - alias /var/lib/mailman/archives/public; | ||
303 | - autoindex on; | ||
304 | - } | ||
305 | - [...] | ||
306 | - } | ||
307 | - | ||
308 | -Now create the fastcgi_params file and add the following: | ||
309 | - | ||
310 | -.. code-block:: | ||
311 | - | ||
312 | - fastcgi_param QUERY_STRING $query_string; | ||
313 | - fastcgi_param REQUEST_METHOD $request_method; | ||
314 | - fastcgi_param CONTENT_TYPE $content_type; | ||
315 | - fastcgi_param CONTENT_LENGTH $content_length; | ||
316 | - | ||
317 | - fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; | ||
318 | - fastcgi_param SCRIPT_NAME $fastcgi_script_name; | ||
319 | - fastcgi_param REQUEST_URI $request_uri; | ||
320 | - fastcgi_param DOCUMENT_URI $document_uri; | ||
321 | - fastcgi_param DOCUMENT_ROOT $document_root; | ||
322 | - fastcgi_param SERVER_PROTOCOL $server_protocol; | ||
323 | - | ||
324 | - fastcgi_param GATEWAY_INTERFACE CGI/1.1; | ||
325 | - fastcgi_param SERVER_SOFTWARE nginx; | ||
326 | - | ||
327 | - fastcgi_param REMOTE_ADDR $remote_addr; | ||
328 | - fastcgi_param REMOTE_PORT $remote_port; | ||
329 | - fastcgi_param SERVER_ADDR $server_addr; | ||
330 | - fastcgi_param SERVER_PORT $server_port; | ||
331 | - fastcgi_param SERVER_NAME $server_name; | ||
332 | - | ||
333 | -Now open the mm_config.py file (sudo editor /etc/mailman/mm_config.py) and modify the lines below to: | ||
334 | - | ||
335 | -.. code-block:: | ||
336 | - | ||
337 | - DEFAULT_EMAIL_HOST = 'localhost' | ||
338 | - DEFAULT_URL_HOST = 'localhost:8080' | ||
339 | - | ||
340 | -To these modifications have effect do the following: | ||
341 | - | ||
342 | -.. code-block:: | ||
343 | - | ||
344 | - sudo withlist -l -a -r fix_url | ||
345 | - | ||
346 | -Also tt's needed to add permission to mailman to access the name_of_the_list.mbox because it needs to archive the emails: | ||
347 | - | ||
348 | -.. code-block:: | ||
349 | - | ||
350 | - sudo chown -R root:list /var/lib/mailman/archives | ||
351 | - sudo chown -R root:list /var/lib/mailman/data/aliases | ||
352 | - sudo chown -R root:list /etc/aliases | ||
353 | - sudo chmod -R u+rwX /var/lib/mailman/archives | ||
354 | - | ||
355 | -Now restart fcgi, mailman and nginx: | ||
356 | - | ||
357 | -.. code-block:: | ||
358 | - | ||
359 | - sudo /etc/init.d/fcgiwrap restart | ||
360 | - sudo /etc/init.d/mailman restart | ||
361 | - sudo /etc/init.d/nginx reload | ||
362 | - | ||
363 | -To see if it's working: | ||
364 | - | ||
365 | -.. code-block:: | ||
366 | - | ||
367 | - http://localhost:8080/cgi-bin/mailman/listinfo/mailman | ||
368 | - | ||
369 | -Setting up Colab | ||
370 | -========================= | ||
371 | - | ||
372 | -You can exit the vagrant VM ('exit' inside the ssh shell) but for now leave it running Trac and start a new terminal tab | ||
373 | - | ||
374 | -Open the /src/colab/local_settings.py file | ||
375 | - | ||
376 | -Change COLAB_TRAC_URL to | ||
377 | - | ||
378 | -.. code-block:: | ||
379 | - | ||
380 | - COLAB_TRAC_URL = 'http://localhost:5000/trac/' | ||
381 | - | ||
382 | -Or the port you're using to Trac | ||
383 | - | ||
384 | -After this it's needed to import the e-mails from Mailman: | ||
385 | - | ||
386 | -.. code-block:: | ||
387 | - | ||
388 | - sudo python manage.py import_emails | ||
389 | - | ||
390 | -And also update Solr: | ||
391 | - | ||
392 | -.. code-block:: | ||
393 | - | ||
394 | - sudo python manage.py update_index | ||
395 | - | ||
396 | -Then, use fabric at colab's root to update the requirements to your VM | ||
397 | - | ||
398 | -.. code-block:: | ||
399 | - | ||
400 | - fabric runserver:update | ||
401 | - | ||
402 | -*NOTE:* | ||
403 | - | ||
404 | - The fabric installation on ubuntu through 'pip install' might not be added to the path so you'll need to find | ||
405 | - where it was installed if thats your case | ||
406 | - | ||
407 | -Lastly, run fabric again to run the server (it'll also sync and migrate colab's database) and open new tabs to run trac and solr: | ||
408 | - | ||
409 | -.. code-block:: | ||
410 | - | ||
411 | - fab runserver | ||
412 | - fab trac | ||
413 | - fab solr | ||
414 | - | ||
415 | -You should be able to see colab with its cms service already working at port 8000(because of vagrant redirects) | ||
416 | - | ||
417 | -*NOTE* | ||
418 | - | ||
419 | - In case login doesn't work, change the SITE_URL in src/colab/local_settings.py and in src/colab/custom_settings.py the reflect the django's port | ||
420 | - Also, add the following line riht bellow it | ||
421 | - BROWSERID_AUDIENCES = [SITE_URL, SITE_URL.replace('https', 'http')] |