capitate 0.1.7
Sign up to get free protection for your applications and to get access to all the features.
- data/Capfile +24 -0
- data/History.txt +22 -0
- data/License.txt +20 -0
- data/Manifest.txt +100 -0
- data/README.txt +1 -0
- data/Rakefile +4 -0
- data/bin/capitate +46 -0
- data/config/hoe.rb +70 -0
- data/config/requirements.rb +17 -0
- data/lib/capitate/cap_ext/connections.rb +95 -0
- data/lib/capitate/cap_ext/extension_proxy.rb +15 -0
- data/lib/capitate/cap_ext/variables.rb +59 -0
- data/lib/capitate/config.rb +106 -0
- data/lib/capitate/plugins/base.rb +85 -0
- data/lib/capitate/plugins/gem.rb +25 -0
- data/lib/capitate/plugins/package.rb +30 -0
- data/lib/capitate/plugins/profiles.rb +33 -0
- data/lib/capitate/plugins/script.rb +118 -0
- data/lib/capitate/plugins/templates.rb +98 -0
- data/lib/capitate/plugins/wget.rb +23 -0
- data/lib/capitate/plugins/yum.rb +87 -0
- data/lib/capitate/recipes.rb +9 -0
- data/lib/capitate/version.rb +9 -0
- data/lib/capitate.rb +32 -0
- data/lib/doc/centos/memcached.yml +18 -0
- data/lib/doc/centos/mongrel_cluster.yml +11 -0
- data/lib/doc/centos/monit.yml +12 -0
- data/lib/doc/centos/mysql.yml +6 -0
- data/lib/doc/centos/nginx.yml +25 -0
- data/lib/doc/centos/sphinx.yml +14 -0
- data/lib/doc/gems.yml +7 -0
- data/lib/doc/install.yml +11 -0
- data/lib/doc/memcached.yml +13 -0
- data/lib/doc/mongrel_cluster.yml +12 -0
- data/lib/doc/mysql.yml +46 -0
- data/lib/doc/nginx.yml +23 -0
- data/lib/doc/packages.yml +17 -0
- data/lib/doc/rails.yml +15 -0
- data/lib/profiles/centos-sick.rb +114 -0
- data/lib/recipes/README +5 -0
- data/lib/recipes/centos/README +3 -0
- data/lib/recipes/centos/centos.rb +44 -0
- data/lib/recipes/centos/imagemagick.rb +19 -0
- data/lib/recipes/centos/memcached.rb +31 -0
- data/lib/recipes/centos/mongrel_cluster.rb +34 -0
- data/lib/recipes/centos/monit.rb +42 -0
- data/lib/recipes/centos/mysql.rb +25 -0
- data/lib/recipes/centos/nginx.rb +45 -0
- data/lib/recipes/centos/ruby.rb +37 -0
- data/lib/recipes/centos/sphinx.rb +49 -0
- data/lib/recipes/deploy.rb +18 -0
- data/lib/recipes/gems.rb +11 -0
- data/lib/recipes/install.rb +18 -0
- data/lib/recipes/memcached.rb +14 -0
- data/lib/recipes/mongrel_cluster.rb +33 -0
- data/lib/recipes/mysql.rb +33 -0
- data/lib/recipes/nginx.rb +40 -0
- data/lib/recipes/packages.rb +24 -0
- data/lib/recipes/rails.rb +20 -0
- data/lib/recipes/sphinx.rb +38 -0
- data/lib/templates/capistrano/Capfile +26 -0
- data/lib/templates/centos/setup_for_web.sh +17 -0
- data/lib/templates/centos/sudoers +95 -0
- data/lib/templates/memcached/memcached.initd.centos.erb +70 -0
- data/lib/templates/memcached/memcached.monitrc.erb +4 -0
- data/lib/templates/mongrel/mongrel_cluster.initd.erb +61 -0
- data/lib/templates/mongrel/mongrel_cluster.monitrc.erb +15 -0
- data/lib/templates/mongrel/mongrel_cluster.yml.erb +10 -0
- data/lib/templates/monit/cert.sh +14 -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 +28 -0
- data/lib/templates/monit/patch_inittab.sh +15 -0
- data/lib/templates/mysql/install_db.sql.erb +7 -0
- data/lib/templates/mysql/mysql.monitrc.erb +6 -0
- data/lib/templates/nginx/nginx.conf.erb +88 -0
- data/lib/templates/nginx/nginx.initd.erb +62 -0
- data/lib/templates/nginx/nginx.monitrc.erb +4 -0
- data/lib/templates/nginx/nginx_vhost.conf.erb +95 -0
- data/lib/templates/rails/database.yml.erb +42 -0
- data/lib/templates/ruby/fix_openssl.sh +12 -0
- data/lib/templates/sphinx/sphinx.conf.erb +498 -0
- data/lib/templates/sphinx/sphinx.monitrc.erb +4 -0
- data/lib/templates/sphinx/sphinx_app.initd.centos.erb +67 -0
- data/script/destroy +14 -0
- data/script/generate +14 -0
- data/script/txt2html +74 -0
- data/setup.rb +1585 -0
- data/tasks/capitate.rake +10 -0
- data/tasks/deployment.rake +34 -0
- data/tasks/environment.rake +7 -0
- data/tasks/website.rake +17 -0
- data/test/test_helper.rb +2 -0
- data/test/test_recipes.rb +11 -0
- data/test/test_templates.rb +29 -0
- data/website/index.html +161 -0
- data/website/index.txt +86 -0
- data/website/javascripts/rounded_corners_lite.inc.js +285 -0
- data/website/stylesheets/screen.css +138 -0
- data/website/template.rhtml +48 -0
- metadata +160 -0
@@ -0,0 +1,62 @@
|
|
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
|
+
set -e
|
12
|
+
|
13
|
+
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
|
14
|
+
DESC="nginx daemon"
|
15
|
+
NAME=nginx
|
16
|
+
DAEMON=<%= nginx_bin_path %>
|
17
|
+
CONFIGFILE=<%= nginx_conf_path %>
|
18
|
+
PIDFILE=<%= nginx_pid_path %>
|
19
|
+
|
20
|
+
# Gracefully exit if the package has been removed.
|
21
|
+
test -x $DAEMON || exit 0
|
22
|
+
|
23
|
+
start() {
|
24
|
+
$DAEMON -c $CONFIGFILE || echo -n " already running"
|
25
|
+
}
|
26
|
+
|
27
|
+
stop() {
|
28
|
+
kill -QUIT `cat $PIDFILE` || echo -n " not running"
|
29
|
+
}
|
30
|
+
|
31
|
+
reload() {
|
32
|
+
kill -HUP `cat $PIDFILE` || echo -n " can't reload"
|
33
|
+
}
|
34
|
+
|
35
|
+
case "$1" in
|
36
|
+
start)
|
37
|
+
echo -n "Starting $DESC: $NAME"
|
38
|
+
start
|
39
|
+
;;
|
40
|
+
stop)
|
41
|
+
echo -n "Stopping $DESC: $NAME"
|
42
|
+
stop
|
43
|
+
;;
|
44
|
+
reload)
|
45
|
+
echo -n "Reloading $DESC configuration..."
|
46
|
+
reload
|
47
|
+
echo "reloaded."
|
48
|
+
;;
|
49
|
+
restart)
|
50
|
+
echo -n "Restarting $DESC: $NAME"
|
51
|
+
stop
|
52
|
+
# Sleep before start
|
53
|
+
sleep 1
|
54
|
+
start
|
55
|
+
;;
|
56
|
+
*)
|
57
|
+
echo "Usage: $0 {start|stop|restart|reload}" >&2
|
58
|
+
exit 3
|
59
|
+
;;
|
60
|
+
esac
|
61
|
+
|
62
|
+
exit 0
|
@@ -0,0 +1,95 @@
|
|
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 mongrel-cluster-<%= application %> {
|
11
|
+
<% 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
|
+
# sets the domain[s] that this vhost server requests for
|
24
|
+
server_name www.<%= domain_name %>;
|
25
|
+
|
26
|
+
# doc root
|
27
|
+
root <%= public_path %>;
|
28
|
+
|
29
|
+
# vhost specific access log
|
30
|
+
access_log <%= shared_path %>/log/nginx.<%= application %>.access.log main;
|
31
|
+
|
32
|
+
# this rewrites all the requests to the maintenance.html
|
33
|
+
# page if it exists in the doc root. This is for capistrano's
|
34
|
+
# disable web task
|
35
|
+
if (-f $document_root/system/maintenance.html) {
|
36
|
+
rewrite ^(.*)$ /system/maintenance.html last;
|
37
|
+
break;
|
38
|
+
}
|
39
|
+
|
40
|
+
location / {
|
41
|
+
# Uncomment to allow server side includes so nginx can
|
42
|
+
# post-process Rails content
|
43
|
+
## ssi on;
|
44
|
+
|
45
|
+
proxy_set_header X-Real-IP $remote_addr;
|
46
|
+
|
47
|
+
# needed for HTTPS
|
48
|
+
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
49
|
+
proxy_set_header Host $http_host;
|
50
|
+
proxy_redirect false;
|
51
|
+
proxy_max_temp_file_size 0;
|
52
|
+
|
53
|
+
# For iphone unique url
|
54
|
+
if ($http_user_agent ~* "(iPhone|iPod)") {
|
55
|
+
rewrite ^/$ /iphone break;
|
56
|
+
proxy_pass http://mongrel-cluster-<%= application %>;
|
57
|
+
break;
|
58
|
+
}
|
59
|
+
|
60
|
+
if (-f $request_filename) {
|
61
|
+
break;
|
62
|
+
}
|
63
|
+
|
64
|
+
if (-f $document_root/cache/$uri/index.html) {
|
65
|
+
rewrite (.*) /cache/$1/index.html break;
|
66
|
+
}
|
67
|
+
|
68
|
+
if (-f $document_root/cache/$uri.html) {
|
69
|
+
rewrite (.*) /cache/$1.html break;
|
70
|
+
}
|
71
|
+
|
72
|
+
if (-f $document_root/cache/$uri) {
|
73
|
+
rewrite (.*) /cache/$1 break;
|
74
|
+
}
|
75
|
+
|
76
|
+
if (!-f $request_filename) {
|
77
|
+
proxy_pass http://mongrel-cluster-<%= application %>;
|
78
|
+
break;
|
79
|
+
}
|
80
|
+
}
|
81
|
+
|
82
|
+
#error_page 404 /404.html;
|
83
|
+
|
84
|
+
# redirect server error pages to the static page /50x.html
|
85
|
+
#
|
86
|
+
error_page 500 502 503 504 /500.html;
|
87
|
+
location = /500.html {
|
88
|
+
root <%= public_path %>;
|
89
|
+
}
|
90
|
+
}
|
91
|
+
|
92
|
+
server {
|
93
|
+
server_name <%= domain_name %>;
|
94
|
+
rewrite ^/(.*) http://www.<%= domain_name %>/$1 permanent;
|
95
|
+
}
|
@@ -0,0 +1,42 @@
|
|
1
|
+
# MySQL (default setup). Versions 4.1 and 5.0 are recommended.
|
2
|
+
#
|
3
|
+
# Install the MySQL driver:
|
4
|
+
# gem install mysql
|
5
|
+
# On Mac OS X:
|
6
|
+
# sudo gem install mysql -- --with-mysql-dir=/usr/local/mysql
|
7
|
+
# On Mac OS X Leopard:
|
8
|
+
# sudo env ARCHFLAGS="-arch i386" gem install mysql -- --with-mysql-config=/usr/local/mysql/bin/mysql_config
|
9
|
+
# This sets the ARCHFLAGS environment variable to your native architecture
|
10
|
+
# On Windows:
|
11
|
+
# gem install mysql
|
12
|
+
# Choose the win32 build.
|
13
|
+
# Install MySQL and put its /bin directory on your path.
|
14
|
+
#
|
15
|
+
# And be sure to use new-style password hashing:
|
16
|
+
# http://dev.mysql.com/doc/refman/5.0/en/old-client.html
|
17
|
+
development:
|
18
|
+
adapter: mysql
|
19
|
+
encoding: utf8
|
20
|
+
database: <%= db_name %>_development
|
21
|
+
username: root
|
22
|
+
password:
|
23
|
+
socket: /tmp/mysql.sock
|
24
|
+
|
25
|
+
# Warning: The database defined as 'test' will be erased and
|
26
|
+
# re-generated from your development database when you run 'rake'.
|
27
|
+
# Do not set this db to the same as development or production.
|
28
|
+
test:
|
29
|
+
adapter: mysql
|
30
|
+
encoding: utf8
|
31
|
+
database: <%= db_name %>_test
|
32
|
+
username: root
|
33
|
+
password:
|
34
|
+
socket: /tmp/mysql.sock
|
35
|
+
|
36
|
+
production:
|
37
|
+
adapter: mysql
|
38
|
+
encoding: utf8
|
39
|
+
database: <%= db_name %>
|
40
|
+
username: <%= db_user %>
|
41
|
+
password: <%= db_pass %>
|
42
|
+
socket: /var/lib/mysql/mysql.sock
|