calas-capitate 0.3.6
Sign up to get free protection for your applications and to get access to all the features.
- data/Capfile +13 -0
- data/History.txt +167 -0
- data/License.txt +20 -0
- data/Manifest.txt +121 -0
- data/README.txt +8 -0
- data/Rakefile +4 -0
- data/config/hoe.rb +72 -0
- data/config/requirements.rb +17 -0
- data/lib/capitate.rb +56 -0
- data/lib/capitate/cap_ext/connections.rb +105 -0
- data/lib/capitate/cap_ext/docs.rb +26 -0
- data/lib/capitate/cap_ext/namespace.rb +34 -0
- data/lib/capitate/cap_ext/run_via.rb +16 -0
- data/lib/capitate/cap_ext/task_definition.rb +22 -0
- data/lib/capitate/cap_ext/variables.rb +132 -0
- data/lib/capitate/plugins/base.rb +140 -0
- data/lib/capitate/plugins/build.rb +71 -0
- data/lib/capitate/plugins/gem.rb +24 -0
- data/lib/capitate/plugins/prompt.rb +109 -0
- data/lib/capitate/plugins/rake.rb +25 -0
- data/lib/capitate/plugins/script.rb +96 -0
- data/lib/capitate/plugins/templates.rb +113 -0
- data/lib/capitate/plugins/utils.rb +151 -0
- data/lib/capitate/plugins/yum.rb +76 -0
- data/lib/capitate/recipes.rb +5 -0
- data/lib/capitate/task_node.rb +262 -0
- data/lib/capitate/version.rb +9 -0
- data/lib/deployment/centos-5.1-64-web/install.rb +196 -0
- data/lib/recipes/active_record.rb +36 -0
- data/lib/recipes/apache.rb +47 -0
- data/lib/recipes/backgroundrb.rb +29 -0
- data/lib/recipes/centos/backgroundjob.rb +27 -0
- data/lib/recipes/centos/backgroundrb.rb +23 -0
- data/lib/recipes/centos/centos.rb +45 -0
- data/lib/recipes/centos/imagemagick.rb +29 -0
- data/lib/recipes/centos/memcached.rb +45 -0
- data/lib/recipes/centos/merb.rb +23 -0
- data/lib/recipes/centos/mongrel_cluster.rb +54 -0
- data/lib/recipes/centos/monit.rb +62 -0
- data/lib/recipes/centos/mysql.rb +25 -0
- data/lib/recipes/centos/nginx.rb +64 -0
- data/lib/recipes/centos/ruby.rb +40 -0
- data/lib/recipes/centos/sphinx.rb +59 -0
- data/lib/recipes/docs.rb +24 -0
- data/lib/recipes/logrotate/backgroundjob.rb +26 -0
- data/lib/recipes/logrotate/backgroundrb.rb +26 -0
- data/lib/recipes/logrotate/merb.rb +25 -0
- data/lib/recipes/logrotate/mongrel_cluster.rb +29 -0
- data/lib/recipes/logrotate/monit.rb +28 -0
- data/lib/recipes/logrotate/mysql.rb +26 -0
- data/lib/recipes/logrotate/nginx.rb +37 -0
- data/lib/recipes/logrotate/rails.rb +21 -0
- data/lib/recipes/logrotate/sphinx.rb +21 -0
- data/lib/recipes/logrotated.rb +61 -0
- data/lib/recipes/memcached.rb +26 -0
- data/lib/recipes/merb.rb +32 -0
- data/lib/recipes/monit.rb +35 -0
- data/lib/recipes/monit/backgroundjob.rb +38 -0
- data/lib/recipes/monit/backgroundrb.rb +38 -0
- data/lib/recipes/monit/database.rb +25 -0
- data/lib/recipes/monit/memcached.rb +22 -0
- data/lib/recipes/monit/merb.rb +58 -0
- data/lib/recipes/monit/mongrel_cluster.rb +85 -0
- data/lib/recipes/monit/mysql.rb +20 -0
- data/lib/recipes/monit/nginx.rb +37 -0
- data/lib/recipes/monit/sphinx.rb +38 -0
- data/lib/recipes/monit/sshd.rb +27 -0
- data/lib/recipes/mysql.rb +42 -0
- data/lib/recipes/nginx.rb +29 -0
- data/lib/recipes/rails.rb +71 -0
- data/lib/recipes/redmine.rb +38 -0
- data/lib/recipes/sphinx.rb +60 -0
- data/lib/recipes/sshd.rb +47 -0
- data/lib/recipes/syslogd.rb +21 -0
- data/lib/templates/apache/vhost.mongrel_cluster.conf.erb +46 -0
- data/lib/templates/backgroundjob/backgroundjob.initd.centos.erb +54 -0
- data/lib/templates/backgroundjob/backgroundjob.monitrc.erb +3 -0
- data/lib/templates/backgroundrb/backgroundrb.initd.centos.erb +58 -0
- data/lib/templates/backgroundrb/backgroundrb.monitrc.erb +3 -0
- data/lib/templates/backgroundrb/backgroundrb.yml.erb +14 -0
- data/lib/templates/capistrano/Capfile +22 -0
- data/lib/templates/logrotated/conf.erb +3 -0
- data/lib/templates/memcached/memcached.initd.centos.erb +58 -0
- data/lib/templates/memcached/memcached.monitrc.erb +4 -0
- data/lib/templates/memcached/memcached.yml.erb +14 -0
- data/lib/templates/merb/merb-no-http.monitrc.erb +13 -0
- data/lib/templates/merb/merb.initd.centos.erb +123 -0
- data/lib/templates/merb/merb.monitrc.erb +15 -0
- data/lib/templates/mongrel/mongrel_cluster.initd.centos.erb +94 -0
- data/lib/templates/mongrel/mongrel_cluster.monitrc.erb +15 -0
- data/lib/templates/mongrel/mongrel_cluster.yml.erb +11 -0
- data/lib/templates/monit/monit.cnf +34 -0
- data/lib/templates/monit/monit.initd.centos.erb +68 -0
- data/lib/templates/monit/monitrc.erb +18 -0
- data/lib/templates/mysql/install_db.sql.erb +6 -0
- data/lib/templates/mysql/my.cnf.innodb_1024.erb +122 -0
- data/lib/templates/mysql/my.cnf.innodb_512.erb +127 -0
- data/lib/templates/mysql/mysql.monitrc.erb +6 -0
- data/lib/templates/nginx/nginx.conf.erb +97 -0
- data/lib/templates/nginx/nginx.initd.centos.erb +69 -0
- data/lib/templates/nginx/nginx.monitrc.erb +4 -0
- data/lib/templates/nginx/nginx_vhost.conf.erb +101 -0
- data/lib/templates/nginx/nginx_vhost_generic.conf.erb +99 -0
- data/lib/templates/rails/database.yml.erb +7 -0
- data/lib/templates/redmine/email.yml.erb +10 -0
- data/lib/templates/ruby/fix_openssl.sh +12 -0
- data/lib/templates/sphinx/sphinx.conf.erb +157 -0
- data/lib/templates/sphinx/sphinx.monitrc.erb +4 -0
- data/lib/templates/sphinx/sphinx_app.initd.centos.erb +90 -0
- data/lib/templates/sshd/sshd.monitrc.erb +5 -0
- data/script/destroy +14 -0
- data/script/generate +14 -0
- data/script/txt2html +80 -0
- data/setup.rb +1585 -0
- data/tasks/deployment.rake +34 -0
- data/tasks/environment.rake +7 -0
- data/tasks/website.rake +23 -0
- data/test/test_helper.rb +2 -0
- data/test/test_plugin_upload.rb +32 -0
- data/test/test_recipes.rb +37 -0
- data/test/test_templates.rb +29 -0
- 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,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,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,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--
|