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')] |