calas-capitate 0.3.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (122) hide show
  1. data/Capfile +13 -0
  2. data/History.txt +167 -0
  3. data/License.txt +20 -0
  4. data/Manifest.txt +121 -0
  5. data/README.txt +8 -0
  6. data/Rakefile +4 -0
  7. data/config/hoe.rb +72 -0
  8. data/config/requirements.rb +17 -0
  9. data/lib/capitate.rb +56 -0
  10. data/lib/capitate/cap_ext/connections.rb +105 -0
  11. data/lib/capitate/cap_ext/docs.rb +26 -0
  12. data/lib/capitate/cap_ext/namespace.rb +34 -0
  13. data/lib/capitate/cap_ext/run_via.rb +16 -0
  14. data/lib/capitate/cap_ext/task_definition.rb +22 -0
  15. data/lib/capitate/cap_ext/variables.rb +132 -0
  16. data/lib/capitate/plugins/base.rb +140 -0
  17. data/lib/capitate/plugins/build.rb +71 -0
  18. data/lib/capitate/plugins/gem.rb +24 -0
  19. data/lib/capitate/plugins/prompt.rb +109 -0
  20. data/lib/capitate/plugins/rake.rb +25 -0
  21. data/lib/capitate/plugins/script.rb +96 -0
  22. data/lib/capitate/plugins/templates.rb +113 -0
  23. data/lib/capitate/plugins/utils.rb +151 -0
  24. data/lib/capitate/plugins/yum.rb +76 -0
  25. data/lib/capitate/recipes.rb +5 -0
  26. data/lib/capitate/task_node.rb +262 -0
  27. data/lib/capitate/version.rb +9 -0
  28. data/lib/deployment/centos-5.1-64-web/install.rb +196 -0
  29. data/lib/recipes/active_record.rb +36 -0
  30. data/lib/recipes/apache.rb +47 -0
  31. data/lib/recipes/backgroundrb.rb +29 -0
  32. data/lib/recipes/centos/backgroundjob.rb +27 -0
  33. data/lib/recipes/centos/backgroundrb.rb +23 -0
  34. data/lib/recipes/centos/centos.rb +45 -0
  35. data/lib/recipes/centos/imagemagick.rb +29 -0
  36. data/lib/recipes/centos/memcached.rb +45 -0
  37. data/lib/recipes/centos/merb.rb +23 -0
  38. data/lib/recipes/centos/mongrel_cluster.rb +54 -0
  39. data/lib/recipes/centos/monit.rb +62 -0
  40. data/lib/recipes/centos/mysql.rb +25 -0
  41. data/lib/recipes/centos/nginx.rb +64 -0
  42. data/lib/recipes/centos/ruby.rb +40 -0
  43. data/lib/recipes/centos/sphinx.rb +59 -0
  44. data/lib/recipes/docs.rb +24 -0
  45. data/lib/recipes/logrotate/backgroundjob.rb +26 -0
  46. data/lib/recipes/logrotate/backgroundrb.rb +26 -0
  47. data/lib/recipes/logrotate/merb.rb +25 -0
  48. data/lib/recipes/logrotate/mongrel_cluster.rb +29 -0
  49. data/lib/recipes/logrotate/monit.rb +28 -0
  50. data/lib/recipes/logrotate/mysql.rb +26 -0
  51. data/lib/recipes/logrotate/nginx.rb +37 -0
  52. data/lib/recipes/logrotate/rails.rb +21 -0
  53. data/lib/recipes/logrotate/sphinx.rb +21 -0
  54. data/lib/recipes/logrotated.rb +61 -0
  55. data/lib/recipes/memcached.rb +26 -0
  56. data/lib/recipes/merb.rb +32 -0
  57. data/lib/recipes/monit.rb +35 -0
  58. data/lib/recipes/monit/backgroundjob.rb +38 -0
  59. data/lib/recipes/monit/backgroundrb.rb +38 -0
  60. data/lib/recipes/monit/database.rb +25 -0
  61. data/lib/recipes/monit/memcached.rb +22 -0
  62. data/lib/recipes/monit/merb.rb +58 -0
  63. data/lib/recipes/monit/mongrel_cluster.rb +85 -0
  64. data/lib/recipes/monit/mysql.rb +20 -0
  65. data/lib/recipes/monit/nginx.rb +37 -0
  66. data/lib/recipes/monit/sphinx.rb +38 -0
  67. data/lib/recipes/monit/sshd.rb +27 -0
  68. data/lib/recipes/mysql.rb +42 -0
  69. data/lib/recipes/nginx.rb +29 -0
  70. data/lib/recipes/rails.rb +71 -0
  71. data/lib/recipes/redmine.rb +38 -0
  72. data/lib/recipes/sphinx.rb +60 -0
  73. data/lib/recipes/sshd.rb +47 -0
  74. data/lib/recipes/syslogd.rb +21 -0
  75. data/lib/templates/apache/vhost.mongrel_cluster.conf.erb +46 -0
  76. data/lib/templates/backgroundjob/backgroundjob.initd.centos.erb +54 -0
  77. data/lib/templates/backgroundjob/backgroundjob.monitrc.erb +3 -0
  78. data/lib/templates/backgroundrb/backgroundrb.initd.centos.erb +58 -0
  79. data/lib/templates/backgroundrb/backgroundrb.monitrc.erb +3 -0
  80. data/lib/templates/backgroundrb/backgroundrb.yml.erb +14 -0
  81. data/lib/templates/capistrano/Capfile +22 -0
  82. data/lib/templates/logrotated/conf.erb +3 -0
  83. data/lib/templates/memcached/memcached.initd.centos.erb +58 -0
  84. data/lib/templates/memcached/memcached.monitrc.erb +4 -0
  85. data/lib/templates/memcached/memcached.yml.erb +14 -0
  86. data/lib/templates/merb/merb-no-http.monitrc.erb +13 -0
  87. data/lib/templates/merb/merb.initd.centos.erb +123 -0
  88. data/lib/templates/merb/merb.monitrc.erb +15 -0
  89. data/lib/templates/mongrel/mongrel_cluster.initd.centos.erb +94 -0
  90. data/lib/templates/mongrel/mongrel_cluster.monitrc.erb +15 -0
  91. data/lib/templates/mongrel/mongrel_cluster.yml.erb +11 -0
  92. data/lib/templates/monit/monit.cnf +34 -0
  93. data/lib/templates/monit/monit.initd.centos.erb +68 -0
  94. data/lib/templates/monit/monitrc.erb +18 -0
  95. data/lib/templates/mysql/install_db.sql.erb +6 -0
  96. data/lib/templates/mysql/my.cnf.innodb_1024.erb +122 -0
  97. data/lib/templates/mysql/my.cnf.innodb_512.erb +127 -0
  98. data/lib/templates/mysql/mysql.monitrc.erb +6 -0
  99. data/lib/templates/nginx/nginx.conf.erb +97 -0
  100. data/lib/templates/nginx/nginx.initd.centos.erb +69 -0
  101. data/lib/templates/nginx/nginx.monitrc.erb +4 -0
  102. data/lib/templates/nginx/nginx_vhost.conf.erb +101 -0
  103. data/lib/templates/nginx/nginx_vhost_generic.conf.erb +99 -0
  104. data/lib/templates/rails/database.yml.erb +7 -0
  105. data/lib/templates/redmine/email.yml.erb +10 -0
  106. data/lib/templates/ruby/fix_openssl.sh +12 -0
  107. data/lib/templates/sphinx/sphinx.conf.erb +157 -0
  108. data/lib/templates/sphinx/sphinx.monitrc.erb +4 -0
  109. data/lib/templates/sphinx/sphinx_app.initd.centos.erb +90 -0
  110. data/lib/templates/sshd/sshd.monitrc.erb +5 -0
  111. data/script/destroy +14 -0
  112. data/script/generate +14 -0
  113. data/script/txt2html +80 -0
  114. data/setup.rb +1585 -0
  115. data/tasks/deployment.rake +34 -0
  116. data/tasks/environment.rake +7 -0
  117. data/tasks/website.rake +23 -0
  118. data/test/test_helper.rb +2 -0
  119. data/test/test_plugin_upload.rb +32 -0
  120. data/test/test_recipes.rb +37 -0
  121. data/test/test_templates.rb +29 -0
  122. metadata +198 -0
@@ -0,0 +1,69 @@
1
+ #! /bin/sh
2
+ # nginx Startup script for nginx
3
+ #
4
+ # chkconfig: - 86 14
5
+ # description: nginx web server
6
+ #
7
+ # Author: Ryan Norbauer <ryan.norbauer@gmail.com>
8
+ # Modified: Geoffrey Grosenbach http://topfunky.com
9
+ # Modified: Gabriel Handford http://ducktyper.com
10
+
11
+ # Source function library
12
+ . /etc/rc.d/init.d/functions
13
+
14
+ PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
15
+ DESC="nginx daemon"
16
+ NAME=nginx
17
+ DAEMON=<%= nginx_bin_path %>
18
+ CONFIGFILE=<%= nginx_conf_path %>
19
+ PIDFILE=<%= nginx_pid_path %>
20
+
21
+ # Gracefully exit if the package has been removed.
22
+ test -x $DAEMON || exit 0
23
+
24
+ start() {
25
+ echo -n $"Starting $DESC: "
26
+ daemon $DAEMON -c $CONFIGFILE
27
+ RETVAL=$?
28
+ echo
29
+ return $RETVAL;
30
+ }
31
+
32
+ stop() {
33
+ echo -n $"Stopping $DESC: "
34
+ killproc -p $PIDFILE nginx -QUIT
35
+ RETVAL=$?
36
+ echo
37
+ return $RETVAL;
38
+ }
39
+
40
+ reload() {
41
+ echo -n $"Reloading $DESC: "
42
+ killproc -p $PIDFILE nginx -HUP
43
+ RETVAL=$?
44
+ echo
45
+ return $RETVAL;
46
+ }
47
+
48
+ case "$1" in
49
+ start)
50
+ start
51
+ ;;
52
+ stop)
53
+ stop
54
+ ;;
55
+ reload)
56
+ reload
57
+ ;;
58
+ restart)
59
+ stop
60
+ sleep 1
61
+ start
62
+ ;;
63
+ *)
64
+ echo "Usage: $0 {start|stop|restart|reload}" >&2
65
+ exit 3
66
+ ;;
67
+ esac
68
+
69
+ exit $RETVAL;
@@ -0,0 +1,4 @@
1
+ check process nginx with pidfile <%= nginx_pid_path %>
2
+ group www
3
+ start program = "/sbin/service nginx start"
4
+ stop program = "/sbin/service nginx stop"
@@ -0,0 +1,101 @@
1
+ #
2
+ # DEPRECATED: USE nginx_vhost_generic.conf.erb (This is here for backwards compatibility)
3
+ #
4
+ # Nginx virtual host conf
5
+ #
6
+ # * Uses cache directory configured for public/cache
7
+ # * Re-writes url for iphone user agent to /iphone (so as not to conflict with cache)
8
+ # * TODO-gabe: Same for mobile user agents
9
+ # * Redirects domain.com to www.domain.com (IMO should be the other way around; www is deprecated)
10
+ #
11
+
12
+ upstream <%= mongrel_application %> {
13
+ <% ports.each do |port| %>
14
+ server 127.0.0.1:<%= port %>;
15
+ <% end %>
16
+ }
17
+
18
+ server {
19
+ # port to listen on. Can also be set to an IP:PORT.
20
+ listen 80;
21
+
22
+ # Set the max size for file uploads to 50Mb
23
+ client_max_body_size 50M;
24
+
25
+ <% unless domain_name.blank? or domain_name == "localhost" %>
26
+ # sets the domain[s] that this vhost server requests for
27
+ server_name www.<%= domain_name %>;
28
+ <% end %>
29
+
30
+ # doc root
31
+ root <%= public_path %>;
32
+
33
+ # vhost specific access log
34
+ access_log <%= shared_path %>/log/nginx.<%= application %>.access.log main;
35
+
36
+ # this rewrites all the requests to the maintenance.html
37
+ # page if it exists in the doc root. This is for capistrano's
38
+ # disable web task
39
+ if (-f $document_root/system/maintenance.html) {
40
+ rewrite ^(.*)$ /system/maintenance.html last;
41
+ break;
42
+ }
43
+
44
+ location / {
45
+ # Uncomment to allow server side includes so nginx can
46
+ # post-process Rails content
47
+ ## ssi on;
48
+
49
+ proxy_set_header X-Real-IP $remote_addr;
50
+
51
+ # needed for HTTPS
52
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
53
+ proxy_set_header Host $http_host;
54
+ proxy_redirect false;
55
+ proxy_max_temp_file_size 0;
56
+
57
+ # For iphone unique url
58
+ if ($http_user_agent ~* "(iPhone|iPod)") {
59
+ rewrite ^/$ /iphone break;
60
+ proxy_pass http://<%= mongrel_application %>;
61
+ break;
62
+ }
63
+
64
+ if (-f $request_filename) {
65
+ break;
66
+ }
67
+
68
+ if (-f $document_root/cache/$uri/index.html) {
69
+ rewrite (.*) /cache/$1/index.html break;
70
+ }
71
+
72
+ if (-f $document_root/cache/$uri.html) {
73
+ rewrite (.*) /cache/$1.html break;
74
+ }
75
+
76
+ if (-f $document_root/cache/$uri) {
77
+ rewrite (.*) /cache/$1 break;
78
+ }
79
+
80
+ if (!-f $request_filename) {
81
+ proxy_pass http://<%= mongrel_application %>;
82
+ break;
83
+ }
84
+ }
85
+
86
+ #error_page 404 /404.html;
87
+
88
+ # redirect server error pages to the static page /50x.html
89
+ #
90
+ error_page 500 502 503 504 /500.html;
91
+ location = /500.html {
92
+ root <%= public_path %>;
93
+ }
94
+ }
95
+
96
+ <% unless domain_name.blank? or domain_name == "localhost" %>
97
+ server {
98
+ server_name <%= domain_name %>;
99
+ rewrite ^/(.*) http://www.<%= domain_name %>/$1 permanent;
100
+ }
101
+ <% end %>
@@ -0,0 +1,99 @@
1
+ #
2
+ # Nginx virtual host conf
3
+ #
4
+ # * Uses cache directory configured for public/cache
5
+ # * Re-writes url for iphone user agent to /iphone (so as not to conflict with cache)
6
+ # * TODO-gabe: Same for mobile user agents
7
+ # * Redirects domain.com to www.domain.com (IMO should be the other way around; www is deprecated)
8
+ #
9
+
10
+ upstream <%= nginx_upstream_name %> {
11
+ <% nginx_upstream_ports.each do |port| %>
12
+ server 127.0.0.1:<%= port %>;
13
+ <% end %>
14
+ }
15
+
16
+ server {
17
+ # port to listen on. Can also be set to an IP:PORT.
18
+ listen 80;
19
+
20
+ # Set the max size for file uploads to 50Mb
21
+ client_max_body_size 50M;
22
+
23
+ <% unless domain_name.blank? or domain_name == "localhost" %>
24
+ # sets the domain[s] that this vhost server requests for
25
+ server_name www.<%= domain_name %>;
26
+ <% end %>
27
+
28
+ # doc root
29
+ root <%= public_path %>;
30
+
31
+ # vhost specific access log
32
+ access_log <%= shared_path %>/log/nginx.<%= application %>.access.log main;
33
+
34
+ # this rewrites all the requests to the maintenance.html
35
+ # page if it exists in the doc root. This is for capistrano's
36
+ # disable web task
37
+ if (-f $document_root/system/maintenance.html) {
38
+ rewrite ^(.*)$ /system/maintenance.html last;
39
+ break;
40
+ }
41
+
42
+ location / {
43
+ # Uncomment to allow server side includes so nginx can
44
+ # post-process Rails content
45
+ ## ssi on;
46
+
47
+ proxy_set_header X-Real-IP $remote_addr;
48
+
49
+ # needed for HTTPS
50
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
51
+ proxy_set_header Host $http_host;
52
+ proxy_redirect false;
53
+ proxy_max_temp_file_size 0;
54
+
55
+ # For iphone unique url
56
+ if ($http_user_agent ~* "(iPhone|iPod)") {
57
+ rewrite ^/$ /iphone break;
58
+ proxy_pass http://<%= nginx_upstream_name %>;
59
+ break;
60
+ }
61
+
62
+ if (-f $request_filename) {
63
+ break;
64
+ }
65
+
66
+ if (-f $document_root/cache/$uri/index.html) {
67
+ rewrite (.*) /cache/$1/index.html break;
68
+ }
69
+
70
+ if (-f $document_root/cache/$uri.html) {
71
+ rewrite (.*) /cache/$1.html break;
72
+ }
73
+
74
+ if (-f $document_root/cache/$uri) {
75
+ rewrite (.*) /cache/$1 break;
76
+ }
77
+
78
+ if (!-f $request_filename) {
79
+ proxy_pass http://<%= nginx_upstream_name %>;
80
+ break;
81
+ }
82
+ }
83
+
84
+ #error_page 404 /404.html;
85
+
86
+ # redirect server error pages to the static page /50x.html
87
+ #
88
+ error_page 500 502 503 504 /500.html;
89
+ location = /500.html {
90
+ root <%= public_path %>;
91
+ }
92
+ }
93
+
94
+ <% unless domain_name.blank? or domain_name == "localhost" %>
95
+ server {
96
+ server_name <%= domain_name %>;
97
+ rewrite ^/(.*) http://www.<%= domain_name %>/$1 permanent;
98
+ }
99
+ <% end %>
@@ -0,0 +1,7 @@
1
+ production:
2
+ adapter: mysql
3
+ encoding: utf8
4
+ database: <%= db_name %>
5
+ username: <%= db_user %>
6
+ password: <%= db_pass %>
7
+ <%= "#{db_connect_type}: #{db_connect}" %>
@@ -0,0 +1,10 @@
1
+ <%= rails_env %>:
2
+ delivery_method: :smtp
3
+ smtp_settings:
4
+ address: <%= mailserver_address %>
5
+ port: <%= mailserver_port %>
6
+ domain: <%= mail_domain %>
7
+ authentication: <%= mailserver_authentication %>
8
+ user_name: <%= mailserver_username %>
9
+ password: <%= mailserver_password %>
10
+ tls: <%= mailserver_use_tls %>
@@ -0,0 +1,12 @@
1
+ #! /bin/sh
2
+
3
+ set -e
4
+ trap ERROR ERR
5
+
6
+ # Fix openssl
7
+ cd /usr/src/ruby-1.8.6-p110/ext/openssl
8
+ echo "Fix for ruby openssl..."
9
+ ruby extconf.rb > extconf.log
10
+ make clean > make.log
11
+ make >> make.log
12
+ make install >> make.log
@@ -0,0 +1,157 @@
1
+ # sphinx config
2
+ source pages
3
+ {
4
+ type = mysql
5
+ # whether to strip HTML
6
+ # values can be 0 (don't strip) or 1 (do strip)
7
+ # WARNING, only works with mysql source for now
8
+ # WARNING, should work ok for PERFECTLY formed XHTML for now
9
+ # WARNING, POSSIBLE TO BUG on malformed everday HTML
10
+ # optional, default is 0
11
+ strip_html = 1
12
+
13
+ # what HTML attributes to index if stripping HTML
14
+ # format is as follows:
15
+ #
16
+ index_html_attrs = img=alt,title; a=title;
17
+
18
+ sql_host = <%= sphinx_db_host %>
19
+ sql_user = <%= sphinx_db_user %>
20
+ sql_pass = <%= sphinx_db_pass %>
21
+ sql_db = <%= sphinx_db_name %>
22
+ sql_port = <%= sphinx_db_port %> # optional, default is 3306
23
+
24
+ sql_query_pre = SET NAMES UTF8
25
+ sql_query_pre = SET SESSION query_cache_type=OFF
26
+ sql_query_pre = INSERT INTO indexer_status (started_at, status, index_name, hostname) VALUES (NOW(), 'indexing', 'pages', USER()) \
27
+ ON DUPLICATE KEY UPDATE started_at = NOW(), status = 'indexing'
28
+
29
+ sql_query = SELECT id, user_id, language, UNIX_TIMESTAMP(created_at) AS created_at, UNIX_TIMESTAMP(updated_at) AS updated_at, body, title FROM pages WHERE id>=$start AND id<=$end
30
+ sql_query_range = SELECT MIN(id),MAX(id) FROM pages where type='Article'
31
+ sql_range_step = 1000
32
+
33
+ sql_query_post = UPDATE indexer_status SET updated_at = NOW(), status = 'updated' WHERE index_name = 'pages' and hostname = USER()
34
+
35
+ sql_attr_uint = user_id
36
+ sql_attr_timestamp = created_at
37
+ sql_attr_timestamp = updated_at
38
+ }
39
+
40
+ source pages_delta : pages
41
+ {
42
+ # Clear and reset sql_query_pre
43
+ sql_query_pre =
44
+ sql_query_pre = SET NAMES UTF8
45
+ sql_query_pre = SET SESSION query_cache_type=OFF
46
+ sql_query_pre = INSERT INTO indexer_status (id, started_at, status, index_name, hostname) VALUES (NOW(), 'indexing', 'pages_delta', USER()) \
47
+ ON DUPLICATE KEY UPDATE started_at = NOW(), status = 'indexing'
48
+
49
+ sql_query = SELECT id, user_id, language, UNIX_TIMESTAMP(created_at) AS created_at, UNIX_TIMESTAMP(updated_at) AS updated_at, body, title \
50
+ FROM pages \
51
+ WHERE updated_at >= (SELECT updated_at FROM indexer_status WHERE index_name = 'pages_delta' and hostname = USER())
52
+
53
+ sql_query_post =
54
+ sql_query_post = UPDATE indexer_status SET updated_at = NOW(), status = 'updated' WHERE index_name = 'pages_delta' and hostname = USER()
55
+ sql_query_range =
56
+ sql_range_step =
57
+ }
58
+
59
+ index pages
60
+ {
61
+ source = pages
62
+ path = <%= sphinx_index_root %>/pages
63
+ docinfo = extern
64
+ morphology = stem_en
65
+ stopwords = <%= sphinx_conf_path %>/stopwords.txt
66
+ min_word_len = 1
67
+ charset_type = utf-8
68
+ min_prefix_len = 0
69
+ min_infix_len = 0
70
+ }
71
+
72
+ index pages_delta : pages
73
+ {
74
+ source = pages_delta
75
+ path = <%= sphinx_index_root %>/pages_delta
76
+
77
+ }
78
+
79
+ #############################################################################
80
+ ## indexer settings
81
+ #############################################################################
82
+
83
+ indexer
84
+ {
85
+ # memory limit
86
+ #
87
+ # may be specified in bytes (no postfix), kilobytes (mem_limit=1000K)
88
+ # or megabytes (mem_limit=10M)
89
+ #
90
+ # will grow if set unacceptably low
91
+ # will warn if set too low and potentially hurting the performance
92
+ #
93
+ # optional, default is 32M
94
+ mem_limit = 64M
95
+ }
96
+
97
+ #############################################################################
98
+ ## searchd settings
99
+ #############################################################################
100
+
101
+ searchd
102
+ {
103
+ # IP address on which search daemon will bind and accept
104
+ # incoming network requests
105
+ #
106
+ # optional, default is to listen on all addresses,
107
+ # ie. address = 0.0.0.0
108
+ #
109
+ address = <%= sphinx_host %>
110
+ # address = 192.168.0.1
111
+
112
+
113
+ # port on which search daemon will listen
114
+ port = <%= sphinx_port %>
115
+
116
+
117
+ # log file
118
+ # searchd run info is logged here
119
+ log = <%= sphinx_log_root %>/searchd.log
120
+
121
+
122
+ # query log file
123
+ # all the search queries are logged here
124
+ query_log = <%= sphinx_log_root %>/query.log
125
+
126
+
127
+ # client read timeout, seconds
128
+ read_timeout = 5
129
+
130
+
131
+ # maximum amount of children to fork
132
+ # useful to control server load
133
+ max_children = 30
134
+
135
+
136
+ # a file which will contain searchd process ID
137
+ # used for different external automation scripts
138
+ # MUST be present
139
+ pid_file = <%= sphinx_pid_path %>
140
+
141
+
142
+ # maximum amount of matches this daemon would ever retrieve
143
+ # from each index and serve to client
144
+ #
145
+ # this parameter affects per-client memory and CPU usage
146
+ # (16+ bytes per match) in match sorting phase; so blindly raising
147
+ # it to 1 million is definitely NOT recommended
148
+ #
149
+ # starting from 0.9.7, it can be decreased on the fly through
150
+ # the corresponding API call; increasing is prohibited to protect
151
+ # against malicious and/or malformed requests
152
+ #
153
+ # default is 1000 (just like with Google)
154
+ max_matches = 1000
155
+ }
156
+
157
+ # --eof--