machines 0.5.1
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +11 -0
- data/EXAMPLES.md +18 -0
- data/Gemfile +4 -0
- data/Guardfile +14 -0
- data/INSTALL.md +25 -0
- data/LICENSE +23 -0
- data/README.md +271 -0
- data/Rakefile +60 -0
- data/TODO.md +92 -0
- data/bin/machines +6 -0
- data/lib/machines/app_settings.rb +54 -0
- data/lib/machines/base.rb +13 -0
- data/lib/machines/checks.rb +63 -0
- data/lib/machines/cloud_machine.rb +33 -0
- data/lib/machines/command.rb +86 -0
- data/lib/machines/commandline.rb +148 -0
- data/lib/machines/configuration.rb +49 -0
- data/lib/machines/core.rb +117 -0
- data/lib/machines/database.rb +17 -0
- data/lib/machines/file_operations.rb +104 -0
- data/lib/machines/help.rb +30 -0
- data/lib/machines/installation.rb +151 -0
- data/lib/machines/log_command.rb +22 -0
- data/lib/machines/logger.rb +65 -0
- data/lib/machines/machinesfile.rb +25 -0
- data/lib/machines/named_buffer.rb +9 -0
- data/lib/machines/questions.rb +15 -0
- data/lib/machines/services.rb +24 -0
- data/lib/machines/upload.rb +29 -0
- data/lib/machines/version.rb +4 -0
- data/lib/machines.rb +19 -0
- data/lib/packages/abiword.rb +11 -0
- data/lib/packages/amazon_mp3.rb +4 -0
- data/lib/packages/awstats.rb +16 -0
- data/lib/packages/base.rb +14 -0
- data/lib/packages/chrome.rb +12 -0
- data/lib/packages/cruisecontrol.rb +22 -0
- data/lib/packages/dependencies.rb +10 -0
- data/lib/packages/docky.rb +36 -0
- data/lib/packages/dotfiles.rb +26 -0
- data/lib/packages/file_roller.rb +12 -0
- data/lib/packages/finalise.rb +4 -0
- data/lib/packages/firefox.rb +4 -0
- data/lib/packages/gedit.rb +11 -0
- data/lib/packages/git.rb +4 -0
- data/lib/packages/gmate.rb +33 -0
- data/lib/packages/gnome.rb +10 -0
- data/lib/packages/gnumeric.rb +11 -0
- data/lib/packages/hosts.rb +13 -0
- data/lib/packages/load_machines.rb +38 -0
- data/lib/packages/monit.rb +10 -0
- data/lib/packages/mysql.rb +46 -0
- data/lib/packages/nginx.rb +22 -0
- data/lib/packages/nginx_logrotate.rb +26 -0
- data/lib/packages/openbox.rb +35 -0
- data/lib/packages/passenger.rb +14 -0
- data/lib/packages/passenger_nginx.rb +8 -0
- data/lib/packages/postfix.rb +10 -0
- data/lib/packages/questions.rb +5 -0
- data/lib/packages/rbenv.rb +27 -0
- data/lib/packages/rvm.rb +20 -0
- data/lib/packages/save_machines.rb +4 -0
- data/lib/packages/slim.rb +6 -0
- data/lib/packages/sqlserver.rb +5 -0
- data/lib/packages/subtle.rb +29 -0
- data/lib/packages/sudo_mods.rb +6 -0
- data/lib/packages/time.rb +6 -0
- data/lib/packages/time_daily.rb +5 -0
- data/lib/packages/timezone.rb +10 -0
- data/lib/packages/unison.rb +5 -0
- data/lib/packages/virtualbox.rb +11 -0
- data/lib/packages/virtualbox_guest.rb +7 -0
- data/lib/packages/webapps.rb +36 -0
- data/lib/template/Machinesfile +48 -0
- data/lib/template/certificates/example.com.crt +0 -0
- data/lib/template/certificates/example.com.key +0 -0
- data/lib/template/certificates/selfsigned.crt +14 -0
- data/lib/template/certificates/selfsigned.key +16 -0
- data/lib/template/config.yml +98 -0
- data/lib/template/logrotate/app.erb +10 -0
- data/lib/template/logrotate/nginx.erb +12 -0
- data/lib/template/machines.yml +179 -0
- data/lib/template/misc/awstats.conf.erb +7 -0
- data/lib/template/misc/ntp.conf +7 -0
- data/lib/template/monit/conf.d/delayed_job.erb +11 -0
- data/lib/template/monit/conf.d/mysql.erb +7 -0
- data/lib/template/monit/conf.d/nginx +5 -0
- data/lib/template/monit/conf.d/postfix +7 -0
- data/lib/template/monit/conf.d/ssh +6 -0
- data/lib/template/monit/conf.d/system.erb +14 -0
- data/lib/template/monit/monitrc.erb +10 -0
- data/lib/template/monit/upstart.conf +16 -0
- data/lib/template/mysql/dbmaster.cnf +7 -0
- data/lib/template/mysql/dbslave.cnf +3 -0
- data/lib/template/nginx/app_server.conf.erb +87 -0
- data/lib/template/nginx/nginx.conf.erb +46 -0
- data/lib/template/nginx/upstart.conf.erb +21 -0
- data/lib/template/packages/custom.rb +17 -0
- data/lib/template/packages/productivity.rb +18 -0
- data/lib/template/slim/themes/dark/background.jpg +0 -0
- data/lib/template/slim/themes/dark/panel.png +0 -0
- data/lib/template/slim/themes/dark/slim.theme +39 -0
- data/lib/template/users/phil/dotfiles/bash_aliases +45 -0
- data/lib/template/users/phil/dotfiles/config/Trolltech.conf +4 -0
- data/lib/template/users/phil/dotfiles/config/gtk-3.0/settings.ini +9 -0
- data/lib/template/users/phil/dotfiles/config/openbox/autostart.sh +14 -0
- data/lib/template/users/phil/dotfiles/config/openbox/rc.xml +482 -0
- data/lib/template/users/phil/dotfiles/config/terminator/config +10 -0
- data/lib/template/users/phil/dotfiles/fonts.conf +15 -0
- data/lib/template/users/phil/dotfiles/gitconfig +27 -0
- data/lib/template/users/phil/dotfiles/gtkrc-2.0 +16 -0
- data/lib/template/users/phil/dotfiles/local/share/applications/mimeapps.list +4 -0
- data/lib/template/users/phil/dotfiles/unison/default.prf +33 -0
- data/lib/template/users/www/authorized_keys +0 -0
- data/lib/template/users/www/dotfiles/bash_aliases +40 -0
- data/lib/template/webapps.yml +75 -0
- data/machines.gemspec +44 -0
- data/spec/acceptance/dev_machine_spec.rb +22 -0
- data/spec/lib/machines/app_settings_spec.rb +106 -0
- data/spec/lib/machines/checks_spec.rb +105 -0
- data/spec/lib/machines/cloud_machine_spec.rb +36 -0
- data/spec/lib/machines/command_spec.rb +184 -0
- data/spec/lib/machines/commandline_spec.rb +299 -0
- data/spec/lib/machines/configuration_spec.rb +61 -0
- data/spec/lib/machines/core_spec.rb +299 -0
- data/spec/lib/machines/database_spec.rb +51 -0
- data/spec/lib/machines/file_operations_spec.rb +124 -0
- data/spec/lib/machines/help_spec.rb +22 -0
- data/spec/lib/machines/installation_spec.rb +176 -0
- data/spec/lib/machines/log_command_spec.rb +16 -0
- data/spec/lib/machines/logger_spec.rb +70 -0
- data/spec/lib/machines/machinesfile_spec.rb +34 -0
- data/spec/lib/machines/questions_spec.rb +73 -0
- data/spec/lib/machines/services_spec.rb +26 -0
- data/spec/lib/machines/upload_spec.rb +86 -0
- data/spec/lib/packages/abiword_spec.rb +20 -0
- data/spec/lib/packages/amazon_mp3_spec.rb +17 -0
- data/spec/lib/packages/awstats_spec.rb +26 -0
- data/spec/lib/packages/base_spec.rb +21 -0
- data/spec/lib/packages/chrome_spec.rb +30 -0
- data/spec/lib/packages/cruisecontrol_spec.rb +33 -0
- data/spec/lib/packages/dependencies_spec.rb +20 -0
- data/spec/lib/packages/docky_spec.rb +32 -0
- data/spec/lib/packages/dotfiles_spec.rb +44 -0
- data/spec/lib/packages/file_roller_spec.rb +69 -0
- data/spec/lib/packages/firefox_spec.rb +16 -0
- data/spec/lib/packages/gedit_spec.rb +20 -0
- data/spec/lib/packages/git_spec.rb +16 -0
- data/spec/lib/packages/gmate_spec.rb +39 -0
- data/spec/lib/packages/gnome_spec.rb +22 -0
- data/spec/lib/packages/gnumeric_spec.rb +21 -0
- data/spec/lib/packages/hosts_spec.rb +41 -0
- data/spec/lib/packages/load_machines_spec.rb +118 -0
- data/spec/lib/packages/monit_spec.rb +34 -0
- data/spec/lib/packages/mysql_spec.rb +69 -0
- data/spec/lib/packages/nginx_logrotate_spec.rb +80 -0
- data/spec/lib/packages/nginx_spec.rb +46 -0
- data/spec/lib/packages/openbox_spec.rb +41 -0
- data/spec/lib/packages/passenger_nginx_spec.rb +20 -0
- data/spec/lib/packages/passenger_spec.rb +26 -0
- data/spec/lib/packages/postfix_spec.rb +19 -0
- data/spec/lib/packages/questions_spec.rb +29 -0
- data/spec/lib/packages/rbenv_spec.rb +32 -0
- data/spec/lib/packages/rvm_spec.rb +31 -0
- data/spec/lib/packages/save_machines_spec.rb +51 -0
- data/spec/lib/packages/slim_spec.rb +22 -0
- data/spec/lib/packages/sqlserver_spec.rb +17 -0
- data/spec/lib/packages/timezone_spec.rb +27 -0
- data/spec/lib/packages/unison_spec.rb +17 -0
- data/spec/lib/packages/virtualbox_guest_spec.rb +25 -0
- data/spec/lib/packages/virtualbox_spec.rb +23 -0
- data/spec/lib/packages/webapps_spec.rb +70 -0
- data/spec/spec_helper.rb +103 -0
- data/spec/support/coverage.rb +8 -0
- data/spec/support/fake_out.rb +22 -0
- data/spec/support/fakefs_additions.rb +10 -0
- data/spec/support/minitest.rb +69 -0
- data/spec/support/vm_control.rb +54 -0
- data/tmp/.gitkeep +0 -0
- metadata +581 -0
@@ -0,0 +1,179 @@
|
|
1
|
+
# BE CAREFUL: THIS FILE IS ALSO WRITTEN TO BY MACHINES
|
2
|
+
# This config file is used to read and also write machine settings.
|
3
|
+
# You can replace these comments with your own. Comment lines will be retained upto
|
4
|
+
# the ---.
|
5
|
+
#
|
6
|
+
# THIS CONTAINS A NUMBER OF PASSWORDS. SETTING PROPER PERMISSIONS IS HIGHLY RECOMMENDED.
|
7
|
+
#
|
8
|
+
# Each machine represents a physical (or virtual) computer in your server architecture. This file
|
9
|
+
# is used to determine where to point database connections from app servers. Because of this,
|
10
|
+
# database servers must be created before application servers.
|
11
|
+
#
|
12
|
+
# Edit this file to setup your initial machines. If using EC2, Machines will populate the
|
13
|
+
# address setting with the new instance that is created.
|
14
|
+
#
|
15
|
+
# For example:
|
16
|
+
# machines build maindb # creates the master database and sets address in machines.yml
|
17
|
+
# then:
|
18
|
+
# machines build production # creates the app server and sets db to point to maindb
|
19
|
+
#
|
20
|
+
# machines:
|
21
|
+
# <machine_name>:
|
22
|
+
# hostname: Used to set the hostname of the machine (e.g. main.electricvisions.com)
|
23
|
+
# address: IP or DNS name of the machine (this is populated automatically when creating EC2 machines)
|
24
|
+
# user: User to login as and to identify the users/ folder to use
|
25
|
+
# environment: Rails.env to use
|
26
|
+
# apps: An array of app names to setup on this machine (nil for all, [] for none)
|
27
|
+
# roles: Roles of the server (Roles known by standard template are: app, db, dbmaster, dbslave)
|
28
|
+
# db_server: Db server that will be used or replicated from (e.g. db_server: maindb).
|
29
|
+
# root_pass: Root password for db servers - Leave blank to generate one
|
30
|
+
# replication_user: User to connect with when replicating
|
31
|
+
# replication_pass: Password to connect with when replicating
|
32
|
+
# ec2: tells Machines to create a new ec2 instance (unless address is already set)
|
33
|
+
# type: Size of EC2 instance
|
34
|
+
# 32 bit instances - t1.micro, m1.small, m1.medium
|
35
|
+
# 64 bit instances - m1.large, m1.xlarge, c1.xlarge, cc1.4xlarge, cg1.4xlarge, m2.xlarge, m2.2xlarge, m2.4xlarge
|
36
|
+
# ami: Amazon Machine Image - Choose your preferred AMI at http://alestic.com/ (e.g. ami-11f0cc65 - EU West 32 bit Ubuntu 11.10 EBS)
|
37
|
+
# region: Location of instance (e.g. ec2.eu-west-1.amazonaws.com)
|
38
|
+
# public_key_path: Path to public key file
|
39
|
+
# private_key_path: Path to private key file
|
40
|
+
# username: Instance username (Canonical uses 'ubuntu' in it's AMIs)
|
41
|
+
# security_group: Security group you setup on Amazon - (e.g. ev-public)
|
42
|
+
|
43
|
+
---
|
44
|
+
machines:
|
45
|
+
testvm:
|
46
|
+
hostname: main.electricvisions.com
|
47
|
+
address: machinesvm
|
48
|
+
user: phil
|
49
|
+
password: password
|
50
|
+
environment: development
|
51
|
+
apps:
|
52
|
+
- condensd
|
53
|
+
- fountainwiki
|
54
|
+
- velocitytracking
|
55
|
+
roles:
|
56
|
+
- app
|
57
|
+
- db
|
58
|
+
db_server: testvm
|
59
|
+
|
60
|
+
philworkstation:
|
61
|
+
hostname: main.electricvisions.com
|
62
|
+
address:
|
63
|
+
user: phil
|
64
|
+
environment: development
|
65
|
+
apps:
|
66
|
+
- electricvisions
|
67
|
+
- condensd
|
68
|
+
- fountainwiki
|
69
|
+
- merrol
|
70
|
+
- somafila
|
71
|
+
- velocitytracking
|
72
|
+
- eutopia
|
73
|
+
- sanity
|
74
|
+
- tvs
|
75
|
+
roles:
|
76
|
+
- app
|
77
|
+
- db
|
78
|
+
db_server: philworkstation
|
79
|
+
root_pass: secure
|
80
|
+
|
81
|
+
maindb:
|
82
|
+
hostname: dbmaster.electricvisions.com
|
83
|
+
address:
|
84
|
+
user: www
|
85
|
+
environment: production
|
86
|
+
apps:
|
87
|
+
- electricvisions
|
88
|
+
- condensd
|
89
|
+
- fountainwiki
|
90
|
+
- merrol
|
91
|
+
- somafila
|
92
|
+
- velocitytracking
|
93
|
+
roles:
|
94
|
+
- db
|
95
|
+
- dbmaster
|
96
|
+
root_pass: secure
|
97
|
+
replication_user: repl
|
98
|
+
replication_pass: secure
|
99
|
+
cloud:
|
100
|
+
flavor_id: t1.micro
|
101
|
+
image_id: ami-11f0cc65 # EU WEST 1 Ubuntu x32 11.10 EBS
|
102
|
+
region: eu-west-1
|
103
|
+
public_key_path: ssh/id_rsa.pub
|
104
|
+
private_key_path: ssh/id_rsa
|
105
|
+
username: ubuntu
|
106
|
+
|
107
|
+
backupdb:
|
108
|
+
hostname: dbslave.electricvisions.com
|
109
|
+
address:
|
110
|
+
user: www
|
111
|
+
environment: production
|
112
|
+
apps:
|
113
|
+
- electricvisions
|
114
|
+
- condensd
|
115
|
+
- fountainwiki
|
116
|
+
- merrol
|
117
|
+
- somafila
|
118
|
+
- velocitytracking
|
119
|
+
roles:
|
120
|
+
- db
|
121
|
+
- dbslave
|
122
|
+
root_pass: secure
|
123
|
+
db_server: maindb
|
124
|
+
cloud:
|
125
|
+
flavor_id: t1.micro
|
126
|
+
image_id: ami-11f0cc65 # EU WEST 1 Ubuntu x32 11.10 EBS
|
127
|
+
region: eu-west-1
|
128
|
+
public_key_path: ssh/id_rsa.pub
|
129
|
+
private_key_path: ssh/id_rsa
|
130
|
+
username: ubuntu
|
131
|
+
|
132
|
+
staging:
|
133
|
+
hostname: staging.electricvisions.com
|
134
|
+
address:
|
135
|
+
user: www
|
136
|
+
environment: staging
|
137
|
+
apps:
|
138
|
+
- electricvisions
|
139
|
+
- condensd
|
140
|
+
- fountainwiki
|
141
|
+
- merrol
|
142
|
+
- somafila
|
143
|
+
- velocitytracking
|
144
|
+
roles:
|
145
|
+
- app
|
146
|
+
- db
|
147
|
+
db_server: staging
|
148
|
+
root_pass: secure
|
149
|
+
cloud:
|
150
|
+
flavor_id: t1.micro
|
151
|
+
image_id: ami-11f0cc65 # EU WEST 1 Ubuntu x32 11.10 EBS
|
152
|
+
region: eu-west-1
|
153
|
+
public_key_path: ssh/id_rsa.pub
|
154
|
+
private_key_path: ssh/id_rsa
|
155
|
+
username: ubuntu
|
156
|
+
|
157
|
+
production:
|
158
|
+
hostname: electricvisions.com
|
159
|
+
address:
|
160
|
+
user: www
|
161
|
+
environment: production
|
162
|
+
apps:
|
163
|
+
- electricvisions
|
164
|
+
- condensd
|
165
|
+
- fountainwiki
|
166
|
+
- merrol
|
167
|
+
- somafila
|
168
|
+
- velocitytracking
|
169
|
+
roles:
|
170
|
+
- app
|
171
|
+
db_server: maindb
|
172
|
+
cloud:
|
173
|
+
flavor_id: t1.micro
|
174
|
+
image_id: ami-11f0cc65 # EU WEST 1 Ubuntu x32 11.10 EBS
|
175
|
+
region: eu-west-1
|
176
|
+
public_key_path: ssh/id_rsa.pub
|
177
|
+
private_key_path: ssh/id_rsa
|
178
|
+
username: ubuntu
|
179
|
+
|
@@ -0,0 +1,11 @@
|
|
1
|
+
<% $conf.webapps.each do |appname, app| %>
|
2
|
+
<% if app.monitor_delayed_job %>
|
3
|
+
<% path = "PATH=#{$conf.user_home}/.rbenv/bin:#{$conf.user_home}/.rbenv/shims:$PATH" %>
|
4
|
+
<% env = "RAILS_ENV=#{$conf.environment}" %>
|
5
|
+
<% script = "cd #{app.path}/current && #{path} #{env} bundle exec script/delayed_job" %>
|
6
|
+
check process delayed_job with pidfile <%= app.path %>/shared/pids/delayed_job.pid
|
7
|
+
start program = "/bin/bash -c '<%= script %> start'" as uid <%= $conf.user %> and gid <%= $conf.user %>
|
8
|
+
stop program = "/bin/bash -c '<%= script %> stop'"
|
9
|
+
<% end %>
|
10
|
+
<% end %>
|
11
|
+
|
@@ -0,0 +1,7 @@
|
|
1
|
+
check process mysql with pidfile /var/run/mysqld/mysqld.pid
|
2
|
+
group database
|
3
|
+
start program = "/sbin/start mysql"
|
4
|
+
stop program = "/sbin/stop mysql"
|
5
|
+
if failed host <%= $conf.db_server.address %> port 3306 protocol mysql then restart
|
6
|
+
if 5 restarts within 5 cycles then timeout
|
7
|
+
|
@@ -0,0 +1,14 @@
|
|
1
|
+
check system localhost
|
2
|
+
if loadavg (1min) > 4 then alert
|
3
|
+
if loadavg (5min) > 2 then alert
|
4
|
+
if memory usage > 80% then alert
|
5
|
+
if swap usage > 25% then alert
|
6
|
+
if cpu usage (user) > 70% then alert
|
7
|
+
if cpu usage (system) > 30% then alert
|
8
|
+
if cpu usage (wait) > 20% then alert
|
9
|
+
|
10
|
+
<% $conf.monit.check.paths.split(' ').each do |path| %>
|
11
|
+
check filesystem rootfs with path <%= path %>
|
12
|
+
if space < 5% then alert
|
13
|
+
<% end %>
|
14
|
+
|
@@ -0,0 +1,10 @@
|
|
1
|
+
set daemon 120
|
2
|
+
set logfile syslog facility log_daemon
|
3
|
+
|
4
|
+
set mailserver <%= $conf.monit.mailserver %>
|
5
|
+
set alert <%= $conf.monit.mailto %>
|
6
|
+
|
7
|
+
set httpd port 2812 and allow <%= $conf.monit.webserver.username %>:<%= $conf.monit.webserver.password %>
|
8
|
+
|
9
|
+
include /etc/monit/conf.d/*
|
10
|
+
|
@@ -0,0 +1,16 @@
|
|
1
|
+
# http://mmonit.com/wiki/Monit/Upstart
|
2
|
+
|
3
|
+
description "Monit service manager"
|
4
|
+
|
5
|
+
limit core unlimited unlimited
|
6
|
+
|
7
|
+
start on runlevel [2345]
|
8
|
+
stop on runlevel [!2345]
|
9
|
+
|
10
|
+
expect daemon
|
11
|
+
respawn
|
12
|
+
|
13
|
+
exec /usr/bin/monit -c /etc/monit/monitrc
|
14
|
+
|
15
|
+
pre-stop exec /usr/bin/monit -c /etc/monit/monitrc quit
|
16
|
+
|
@@ -0,0 +1,87 @@
|
|
1
|
+
# Redirect from www
|
2
|
+
server {
|
3
|
+
server_name www.<%= server_name %>;
|
4
|
+
return 301 <%= ssl == 'force' ? 'https' : '$scheme' %>://<%= server_name %>$request_uri;
|
5
|
+
}
|
6
|
+
|
7
|
+
<% if ssl == 'force' %>
|
8
|
+
# Redirect from http
|
9
|
+
server {
|
10
|
+
listen 80;
|
11
|
+
server_name <%= server_name %>;
|
12
|
+
return 301 https://<%= server_name %>$request_uri;
|
13
|
+
}
|
14
|
+
|
15
|
+
<% end %>
|
16
|
+
server {
|
17
|
+
<% unless ssl == 'force' %>
|
18
|
+
listen 80;
|
19
|
+
<% end %>
|
20
|
+
<% if ssl %>
|
21
|
+
listen 443;
|
22
|
+
<% end %>
|
23
|
+
server_name <%= server_name %>;
|
24
|
+
root <%= root %>;
|
25
|
+
rails_env <%= $conf.environment %>;
|
26
|
+
passenger_enabled on;
|
27
|
+
add_header Cache-Control public; # Ensure browsers cache secure pages
|
28
|
+
|
29
|
+
<% if ssl %>
|
30
|
+
ssl on;
|
31
|
+
ssl_certificate /usr/local/nginx/conf/<%= ssl_crt %>;
|
32
|
+
ssl_certificate_key /usr/local/nginx/conf/<%= ssl_key %>;
|
33
|
+
|
34
|
+
passenger_set_cgi_param HTTP_X_FORWARDED_FOR $proxy_add_x_forwarded_for;
|
35
|
+
passenger_set_cgi_param HTTP_HOST $http_host;
|
36
|
+
passenger_set_cgi_param HTTP_X_REAL_IP $remote_addr;
|
37
|
+
passenger_set_cgi_param HTTP_X_FORWARDED_PROTO https;
|
38
|
+
passenger_set_cgi_param HTTP_X_URL_SCHEME $scheme;
|
39
|
+
|
40
|
+
proxy_redirect off;
|
41
|
+
proxy_max_temp_file_size 0;
|
42
|
+
|
43
|
+
<% end %>
|
44
|
+
access_log /var/log/nginx/<%= name %>.access.log main;
|
45
|
+
error_log /var/log/nginx/<%= name %>.error.log notice;
|
46
|
+
|
47
|
+
<% if monit_web %>
|
48
|
+
location /monit/ {
|
49
|
+
rewrite /monit(.*) $1 break;
|
50
|
+
proxy_pass http://127.0.0.1:2812;
|
51
|
+
proxy_redirect off;
|
52
|
+
proxy_set_header Host $host;
|
53
|
+
proxy_set_header X-Real-IP $remote_addr;
|
54
|
+
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
55
|
+
}
|
56
|
+
|
57
|
+
<% end %>
|
58
|
+
<% if stats %>
|
59
|
+
location /stats {
|
60
|
+
alias <%= "#{path}_stats/public" %>;
|
61
|
+
index <%= "awstats.#{server_name}.html" %>;
|
62
|
+
}
|
63
|
+
|
64
|
+
location /icon {
|
65
|
+
root /usr/share/awstats;
|
66
|
+
}
|
67
|
+
|
68
|
+
<% end %>
|
69
|
+
# Cache assets: see http://developer.yahoo.com/performance/rules.html#expires
|
70
|
+
location ~ ^/(images|javascripts|stylesheets)/ {
|
71
|
+
expires 10y;
|
72
|
+
}
|
73
|
+
|
74
|
+
# Rewrite all the requests to the maintenance.html page if it exists.
|
75
|
+
if (-f $document_root/system/maintenance.html) {
|
76
|
+
return 503;
|
77
|
+
}
|
78
|
+
# Allow images and css in maintenance.html file
|
79
|
+
if ($request_filename ~* \.(css|jpg|gif|png)$) {
|
80
|
+
break;
|
81
|
+
}
|
82
|
+
error_page 503 @503;
|
83
|
+
location @503 {
|
84
|
+
rewrite ^(.*)$ /system/maintenance.html break;
|
85
|
+
}
|
86
|
+
}
|
87
|
+
|
@@ -0,0 +1,46 @@
|
|
1
|
+
user <%= $conf.machine.user %>;
|
2
|
+
worker_processes 4; # Match this with the number of CPUs or increase for large static files
|
3
|
+
pid /var/run/nginx.pid; # Used by monit
|
4
|
+
|
5
|
+
events {
|
6
|
+
worker_connections 1024;
|
7
|
+
}
|
8
|
+
|
9
|
+
http {
|
10
|
+
include mime.types;
|
11
|
+
default_type application/octet-stream;
|
12
|
+
|
13
|
+
sendfile on;
|
14
|
+
tcp_nopush on;
|
15
|
+
tcp_nodelay off;
|
16
|
+
keepalive_timeout 65;
|
17
|
+
keepalive_requests 0; # http://technosophos.com/content/nginx-tcpnopush-sendfile-and-memcache-right-configuration
|
18
|
+
|
19
|
+
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
|
20
|
+
'$status $body_bytes_sent "$http_referer" '
|
21
|
+
'"$http_user_agent" "$http_x_forwarded_for"';
|
22
|
+
|
23
|
+
gzip on;
|
24
|
+
gzip_http_version 1.0;
|
25
|
+
gzip_comp_level 2;
|
26
|
+
gzip_proxied any;
|
27
|
+
gzip_types text/plain text/css application/x-javascript text/xml
|
28
|
+
application/xml application/xml+rss text/javascript;
|
29
|
+
|
30
|
+
client_body_buffer_size 128k; # Buffer size that will be written to before using a temporary file
|
31
|
+
client_max_body_size 5M; # Max content to be served. Increase if media content is to be served
|
32
|
+
# client_body_timeout 60; # Time allowed to respond in seconds. Increase for long requests
|
33
|
+
|
34
|
+
passenger_root <%= $conf.passenger.root %>;
|
35
|
+
passenger_ruby <%= $conf.passenger.ruby %>;
|
36
|
+
|
37
|
+
passenger_max_pool_size 8; # Max number of simultaneous instances
|
38
|
+
passenger_pool_idle_time 0; # Do not shutdown instances unless needed
|
39
|
+
<% $conf.webapps.each do |app_name, app| %>
|
40
|
+
<% scheme = app.ssl == 'force' ? 'https' : 'http' %>
|
41
|
+
passenger_pre_start <%= scheme %>://<%= app.server_name %>; # Hit the server so it's ready
|
42
|
+
<% end %>
|
43
|
+
|
44
|
+
include <%= File.join($conf.webserver.path, $conf.webserver.servers_dir, '*.conf') %>;
|
45
|
+
}
|
46
|
+
|
@@ -0,0 +1,21 @@
|
|
1
|
+
description "nginx http daemon"
|
2
|
+
|
3
|
+
start on (filesystem and net-device-up IFACE=lo)
|
4
|
+
stop on runlevel [!2345]
|
5
|
+
|
6
|
+
env DAEMON=<%= $conf.webserver.path %>/sbin/nginx
|
7
|
+
env PID=/var/run/nginx.pid
|
8
|
+
|
9
|
+
# Needed to allow Nginx to start however, the wrong PID will be tracked
|
10
|
+
expect fork
|
11
|
+
|
12
|
+
# Test the nginx configuration (Upstart will exit if this fails)
|
13
|
+
pre-start exec $DAEMON -t
|
14
|
+
|
15
|
+
# Ensure nginx is shutdown gracefully
|
16
|
+
# Upstart will be tracking the wrong PID so the following is needed to stop nginx
|
17
|
+
post-stop exec start-stop-daemon --stop --pidfile $PID --name nginx --exec $DAEMON --signal QUIT
|
18
|
+
|
19
|
+
# Start Nginx
|
20
|
+
exec $DAEMON
|
21
|
+
|
@@ -0,0 +1,17 @@
|
|
1
|
+
only :user => 'phil' do
|
2
|
+
task :workspace, 'Setup home folders' do
|
3
|
+
%w(downloads music pictures reference videos).each do |folder|
|
4
|
+
run mkdir folder
|
5
|
+
run append "file://#{$conf.user_home}/#{folder} folder", to: '.gtk-bookmarks'
|
6
|
+
end
|
7
|
+
end
|
8
|
+
|
9
|
+
sudo install [
|
10
|
+
'flashplugin-installer', # Play Flash in a Web browser
|
11
|
+
'libsqlite3-dev', # Needed if SQLite Gem is used
|
12
|
+
'ubuntu-restricted-extras', # play/record MP3, DVD, Flash, Quicktime, WMA, WMV, etc
|
13
|
+
]
|
14
|
+
|
15
|
+
run append 'startx', :to => '.profile'
|
16
|
+
end
|
17
|
+
|
@@ -0,0 +1,18 @@
|
|
1
|
+
task :productivity, 'Install some productivity apps and set associations'do
|
2
|
+
sudo install [
|
3
|
+
'audacious', # media player
|
4
|
+
'brasero', # CD/DVD Burning tool
|
5
|
+
'evince', # PDF viewer
|
6
|
+
'gimp', # bitmap graphics editor
|
7
|
+
'gitk', # GUI for git
|
8
|
+
'inkscape', # vector graphics editor
|
9
|
+
'meld', # Diff tool used by git
|
10
|
+
'mysql-navigator', # GUI for MySQL
|
11
|
+
]
|
12
|
+
|
13
|
+
run append 'application/pdf=evince.desktop', :to => '.local/share/applications/mimeapps.list'
|
14
|
+
run append 'image/png=gimp.desktop', :to => '.local/share/applications/mimeapps.list'
|
15
|
+
run append 'image/jpeg=gimp.desktop', :to => '.local/share/applications/mimeapps.list'
|
16
|
+
run append 'image/svg=inkscape.desktop', :to => '.local/share/applications/mimeapps.list'
|
17
|
+
end
|
18
|
+
|
Binary file
|
Binary file
|
@@ -0,0 +1,39 @@
|
|
1
|
+
# Dark SLiM theme
|
2
|
+
|
3
|
+
# Messages (ie: shutdown)
|
4
|
+
msg_color #AAAAAA
|
5
|
+
msg_font Ubuntu:size=18:bold:dpi=75
|
6
|
+
|
7
|
+
# valid values: stretch, tile
|
8
|
+
background_style stretch
|
9
|
+
|
10
|
+
# Input controls
|
11
|
+
input_panel_x 50%
|
12
|
+
input_panel_y 50%
|
13
|
+
input_name_x 160
|
14
|
+
input_name_y 107
|
15
|
+
input_pass_x 160
|
16
|
+
input_pass_y 163
|
17
|
+
input_font Ubuntu:size=14:dpi=75
|
18
|
+
input_fgcolor #444444
|
19
|
+
|
20
|
+
# Username / password request
|
21
|
+
username_font Ubuntu:size=16:bold:dpi=75
|
22
|
+
username_color #cccccc
|
23
|
+
username_x 35
|
24
|
+
username_y 110
|
25
|
+
username_shadow_xoffset -1
|
26
|
+
username_shadow_yoffset -1
|
27
|
+
username_shadow_color #333333
|
28
|
+
|
29
|
+
password_font Ubuntu:size=16:bold:dpi=75
|
30
|
+
password_color #cccccc
|
31
|
+
password_x 35
|
32
|
+
password_y 165
|
33
|
+
password_shadow_xoffset -1
|
34
|
+
password_shadow_yoffset -1
|
35
|
+
password_shadow_color #333333
|
36
|
+
|
37
|
+
username_msg Username:
|
38
|
+
password_msg Password:
|
39
|
+
|
@@ -0,0 +1,45 @@
|
|
1
|
+
# Output raw control characters in less (colors log files that use escape codes)
|
2
|
+
alias less='less -R'
|
3
|
+
|
4
|
+
alias g='gedit'
|
5
|
+
|
6
|
+
# Create binstubs for bundler
|
7
|
+
alias bb='bundle --binstubs=.bin'
|
8
|
+
|
9
|
+
# Halve the size of all images in the current folder
|
10
|
+
alias halfsize='ls *.* | xargs -n1 --replace convert -verbose {} -resize 50% {}'
|
11
|
+
|
12
|
+
# Slideshow with feh image viewer
|
13
|
+
# Press ENTER to load current image into Gimp. H to pause slideshow
|
14
|
+
# slide <file or folder>
|
15
|
+
function slide {
|
16
|
+
feh --action "gimp '%f'" --fullscreen --auto-zoom --borderless --slideshow-delay 5 --sort name
|
17
|
+
}
|
18
|
+
|
19
|
+
# Search a Rails project excluding non-source directories
|
20
|
+
function s {
|
21
|
+
grep --color=auto --exclude-dir={coverage,db,doc,.git,log,tmp,vendor,.yardoc} -r $* .
|
22
|
+
}
|
23
|
+
|
24
|
+
# Reset network interface
|
25
|
+
function ifr {
|
26
|
+
sudo ifdown eth0
|
27
|
+
sudo ifup eth0
|
28
|
+
}
|
29
|
+
|
30
|
+
# Get git branch name
|
31
|
+
parse_git_branch() {
|
32
|
+
git symbolic-ref -q HEAD 2> /dev/null | sed 's/refs\/heads\/\(.*\)/ \1/'
|
33
|
+
}
|
34
|
+
|
35
|
+
# Colour-coded prompt
|
36
|
+
# machine-name current-dir rubyversion@gemset [branch] $
|
37
|
+
PURPLE="\[\e[0;35m\]"
|
38
|
+
BLUE="\[\e[0;34m\]"
|
39
|
+
RED="\[\e[0;31m\]"
|
40
|
+
YELLOW="\[\e[0;33m\]"
|
41
|
+
NORMAL="\[\e[m\]"
|
42
|
+
BRANCH="\$(parse_git_branch)"
|
43
|
+
# RVM="\$(~/.rvm/bin/rvm-prompt v g)" # Uncomment to enable rubyversion@gemset
|
44
|
+
PS1="$PURPLE\h $BLUE\w$RED$RVM$YELLOW$BRANCH $PURPLE\$$NORMAL "
|
45
|
+
|
@@ -0,0 +1,9 @@
|
|
1
|
+
[Settings]
|
2
|
+
gtk-theme-name = Adwaita
|
3
|
+
gtk-icon-theme-name = elementary-mono-dark
|
4
|
+
gtk-fallback-icon-theme = gnome
|
5
|
+
# next option is applicable only if selected theme supports it
|
6
|
+
gtk-application-prefer-dark-theme = true
|
7
|
+
# set font name and dimension
|
8
|
+
gtk-font-name = 'Ubuntu Light 9'
|
9
|
+
|
@@ -0,0 +1,14 @@
|
|
1
|
+
# ~/.config/openbox/autostart.sh
|
2
|
+
|
3
|
+
# Lock screen after 5 minutes using slock (type password and press enter to unlock (no feedback))
|
4
|
+
# xautolock -time 5 -locker slock &
|
5
|
+
|
6
|
+
# Set a background image
|
7
|
+
feh --bg-scale $HOME/Pictures/wallpaper.jpg
|
8
|
+
|
9
|
+
# Run the compositing manager
|
10
|
+
xcompmgr &
|
11
|
+
|
12
|
+
# Start Docky the dock launcher
|
13
|
+
docky &
|
14
|
+
|