calas-capitate 0.3.6

Sign up to get free protection for your applications and to get access to all the features.
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--