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.
- 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--
|