machines 0.5.1
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/.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
|
+
|