Commit a8f16493b07dba3f6065ca0895b03845b20e5b9e
Exists in
master
and in
39 other branches
Merge branch 'master' from interlegis/master
Showing
2 changed files
with
243 additions
and
36 deletions
Show diff stats
install.rst
| ... | ... | @@ -145,6 +145,227 @@ Finally, trac can be run by |
| 145 | 145 | |
| 146 | 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 | 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 | + | |
| 148 | 369 | Setting up Colab |
| 149 | 370 | ========================= |
| 150 | 371 | |
| ... | ... | @@ -160,7 +381,19 @@ Change COLAB_TRAC_URL to |
| 160 | 381 | |
| 161 | 382 | Or the port you're using to Trac |
| 162 | 383 | |
| 163 | -Use fabric at colab's root to update the requirements to your VM | |
| 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 | |
| 164 | 397 | |
| 165 | 398 | .. code-block:: |
| 166 | 399 | |
| ... | ... | @@ -171,44 +404,18 @@ Use fabric at colab's root to update the requirements to your VM |
| 171 | 404 | The fabric installation on ubuntu through 'pip install' might not be added to the path so you'll need to find |
| 172 | 405 | where it was installed if thats your case |
| 173 | 406 | |
| 174 | -Now simply run fabric again to run the server (it'll also sync and migrate colab's database) | |
| 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: | |
| 175 | 408 | |
| 176 | 409 | .. code-block:: |
| 177 | 410 | |
| 178 | - fabric runserver | |
| 411 | + fab runserver | |
| 412 | + fab trac | |
| 413 | + fab solr | |
| 179 | 414 | |
| 180 | 415 | You should be able to see colab with its cms service already working at port 8000(because of vagrant redirects) |
| 181 | 416 | |
| 182 | 417 | *NOTE* |
| 183 | 418 | |
| 184 | - In case login doesn't work, change the SITE_URL in src/colab/local_settings.py the reflect the django's port | |
| 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 | |
| 185 | 420 | Also, add the following line riht bellow it |
| 186 | 421 | BROWSERID_AUDIENCES = [SITE_URL, SITE_URL.replace('https', 'http')] |
| 187 | - | |
| 188 | -Installing Solr and indexing colab's schemas | |
| 189 | -========================================== | |
| 190 | -In Progress of making it readable | |
| 191 | - #http servlet jetty | |
| 192 | - sudo apt-get install jetty | |
| 193 | - | |
| 194 | - #solr | |
| 195 | - wget http://ftp.unicamp.br/pub/apache/lucene/solr/4.6.1/solr-4.6.1.tgz | |
| 196 | - tar xvzf solr-4.6.1.tgz | |
| 197 | - sudo mv solr-4.6.1 /usr/share/solr | |
| 198 | - | |
| 199 | - sudo cp /usr/share/solr/example/webapps/solr.war /usr/share/solr/example/solr/solr.war | |
| 200 | - | |
| 201 | - python manage.py build_solr_schema >> schema.xml | |
| 202 | - #existe mais de uma referencia a stopwords_en | |
| 203 | - trocar no schema.xml stopwords_en.txt por lang/stopwords_en.txt | |
| 204 | - | |
| 205 | - sudo cp schema.xml /usr/share/solr/example/solr/collection1/conf | |
| 206 | - | |
| 207 | - #inclusive a tag | |
| 208 | - Remova <updateLog> em solrconfig.xml localizado em /usr/share/solr/example/solr/collection1/conf | |
| 209 | - | |
| 210 | - #executa servidor | |
| 211 | - cd /usr/share/solr/example/; java -jar start.jar; | |
| 212 | - | |
| 213 | - #indexa | |
| 214 | - python manage.py update_index | |
| 215 | 422 | \ No newline at end of file | ... | ... |
src/colab/custom_settings.py
| ... | ... | @@ -268,11 +268,11 @@ FEEDZILLA_SITE_DESCRIPTION = _(u'Colab blog aggregator') |
| 268 | 268 | |
| 269 | 269 | |
| 270 | 270 | ### Mailman API settings |
| 271 | -MAILMAN_API_URL = 'http://listas.interlegis.gov.br:8000' | |
| 271 | +MAILMAN_API_URL = 'localhost:8000' | |
| 272 | 272 | |
| 273 | 273 | |
| 274 | 274 | ### BrowserID / Persona |
| 275 | -SITE_URL = 'https://colab.interlegis.leg.br' | |
| 275 | +SITE_URL = 'localhost:8000' | |
| 276 | 276 | BROWSERID_AUDIENCES = [SITE_URL, SITE_URL.replace('https', 'http')] |
| 277 | 277 | |
| 278 | 278 | |
| ... | ... | @@ -284,8 +284,8 @@ BROWSERID_CREATE_USER = False |
| 284 | 284 | |
| 285 | 285 | |
| 286 | 286 | ## Proxy settings |
| 287 | -COLAB_TRAC_URL = 'http://colab-backend.interlegis.leg.br/' | |
| 288 | -COLAB_CI_URL = 'http://jenkins.interlegis.leg.br:8080/ci/' | |
| 287 | +COLAB_TRAC_URL = 'localhost:5000/trac/' | |
| 288 | +COLAB_CI_URL = 'localhost:9000/ci/' | |
| 289 | 289 | |
| 290 | 290 | REVPROXY_ADD_REMOTE_USER = True |
| 291 | 291 | ... | ... |