deploify 0.2.9 → 0.2.10

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.
@@ -7,7 +7,7 @@ Capistrano::Configuration.instance(:must_exist).load do
7
7
  set :nginx_enabled_vhost_dir, "/etc/nginx/sites-enabled"
8
8
  set :nginx_client_max_body_size, "100M"
9
9
  set :nginx_vhost_type, :http_only
10
- set :nginx_vhost_listen_ip, "0.0.0.0"
10
+ set :nginx_vhost_listen_ip, nil
11
11
  set :nginx_upstream_servers, []
12
12
  # secured sites stuff
13
13
  set :nginx_secured_site, false
@@ -64,6 +64,13 @@ Capistrano::Configuration.instance(:must_exist).load do
64
64
  task :config_project, :roles => :web do
65
65
  _deploify.push_configs(:nginx, project_config_files)
66
66
  if [:http_with_ssl, :http_force_ssl].include?(nginx_vhost_type)
67
+ set(:nginx_vhost_listen_ip) do
68
+ require "resolv"
69
+ server_ip = Resolv.getaddress(find_servers(roles: :web).first.host)
70
+ Capistrano::CLI.ui.ask "Enter IP for Nginx zone (needed for scenarios with SSL support) [#{server_ip}]" do |q|
71
+ q.default = server_ip
72
+ end
73
+ end
67
74
  # SSL is demanded, push certificates
68
75
  target_path = "#{deploy_to}/nginx/#{rails_env}"
69
76
  std.su_put(File.read("#{ssl_certs_source_dir}/#{rails_env}.crt"), "#{target_path}.crt", "/tmp", :mode => 0600)
@@ -104,10 +104,10 @@ Capistrano::Configuration.instance(:must_exist).load do
104
104
 
105
105
  task :symlink_and_activate_passengerctl, :roles => :app do
106
106
  run "#{try_sudo} ln -sf #{deploy_to}/passenger/passengerctl /etc/init.d/passenger-#{application}"
107
- if exists?(:stage) && fetch(:stage).eql?(:staging)
108
- run "#{try_sudo} update-rc.d -f passenger-#{application} remove"
109
- else
107
+ if app_server_autostart
110
108
  run "#{try_sudo} update-rc.d passenger-#{application} defaults"
109
+ else
110
+ run "#{try_sudo} update-rc.d -f passenger-#{application} remove"
111
111
  end
112
112
  end
113
113
 
@@ -15,6 +15,12 @@ Capistrano::Configuration.instance(:must_exist).load do
15
15
  set :rails_env, "production"
16
16
  set :shared_dirs, [] # Array of directories that should be created under shared/
17
17
  # and linked to in the project
18
+ set(:app_server_autostart) do
19
+ # true if:
20
+ # - stage not defined (non-multistaging scenario)
21
+ # - stage is defined, but stage is not :staging
22
+ !exists?(:stage) || (exists?(:stage) && !fetch(:stage).eql?(:staging))
23
+ end
18
24
 
19
25
  # hook into the default capistrano deploy tasks
20
26
  before "deploy:setup", :except => { :no_release => true } do
@@ -85,10 +85,10 @@ Capistrano::Configuration.instance(:must_exist).load do
85
85
 
86
86
  task :symlink_and_activate_thinctl, :roles => :app do
87
87
  run "#{try_sudo} ln -sf #{deploy_to}/thin/thinctl /etc/init.d/thin-#{application}"
88
- if exists?(:stage) && fetch(:stage).eql?(:staging)
89
- run "#{try_sudo} update-rc.d -f thin-#{application} remove"
88
+ if app_server_autostart
89
+ run "#{try_sudo} update-rc.d passenger-#{application} defaults"
90
90
  else
91
- run "#{try_sudo} update-rc.d thin-#{application} defaults"
91
+ run "#{try_sudo} update-rc.d -f passenger-#{application} remove"
92
92
  end
93
93
  end
94
94
 
@@ -9,7 +9,7 @@ server {
9
9
  server_name <%= domain %> <%= Array(web_server_aliases).join(' ') %>;
10
10
 
11
11
  location / {
12
- rewrite ^ https://<%= domain %>$request_uri? permanent;
12
+ rewrite ^ https://<%= force_domain_with_www ? "www.#{domain}" : domain %>$request_uri? permanent;
13
13
  }
14
14
  }
15
15
 
@@ -25,18 +25,18 @@ server {
25
25
  ssl_certificate <%= deploy_to %>/nginx/<%= rails_env %>.crt;
26
26
  ssl_certificate_key <%= deploy_to %>/nginx/<%= rails_env %>.key;
27
27
 
28
- <% if force_domain_with_www -%>
28
+ <%- if force_domain_with_www -%>
29
29
  if ($host !~* ^www.<%= domain %>$) {
30
30
  rewrite ^(.*) https://www.<%= domain %>$1 permanent;
31
31
  }
32
- <% end -%>
32
+ <%- end -%>
33
33
 
34
34
  location / {
35
- <% if nginx_secured_site -%>
35
+ <%- if nginx_secured_site -%>
36
36
  auth_basic "Limited access";
37
37
  auth_basic_user_file <%= "#{deploy_to}/nginx/.htaccess" %>;
38
- <% end -%>
39
- try_files $uri @upstream;
38
+ <%- end -%>
39
+ try_files $uri/index.html $uri @upstream;
40
40
  }
41
41
 
42
42
  location @upstream {
@@ -48,32 +48,31 @@ server {
48
48
  proxy_set_header X-Forwarded-Proto https;
49
49
  }
50
50
 
51
- # This allows people to use images and css in their maintenance.html file
51
+ # this allows people to use images and css in their maintenance.html file
52
52
  if ($request_filename ~* \.(css|jpg|gif|png)$) {
53
53
  break;
54
54
  }
55
55
 
56
- # Rewrite all the requests to the maintenance.html page if it exists.
56
+ # rewrite all the requests to the maintenance.html page if it exists
57
57
  if (-f $document_root/system/maintenance.html) {
58
58
  return 503;
59
59
  }
60
60
 
61
- # set Expire header on assets: see http://developer.yahoo.com/performance/rules.html#expires
61
+ # set Expire header on assets
62
62
  location ~ ^/(images|javascripts|stylesheets)/ {
63
- expires max;
64
- error_page 404 = @upstream;
63
+ if ($request_method = GET) {
64
+ expires 1y;
65
+ }
65
66
  }
66
-
67
67
  location ~ ^/assets/ {
68
- expires max;
68
+ expires 1y;
69
69
  add_header Cache-Control public;
70
70
  add_header ETag "";
71
- error_page 404 = @upstream;
71
+ break;
72
72
  }
73
73
 
74
74
  error_page 404 /404.html;
75
75
  error_page 500 502 504 /500.html;
76
-
77
76
  error_page 503 @503;
78
77
  location @503 {
79
78
  rewrite ^(.*)$ /system/maintenance.html break;
@@ -5,25 +5,25 @@ upstream <%= nginx_upstream_name %> {
5
5
  }
6
6
 
7
7
  server {
8
- listen <%= nginx_vhost_listen_ip %>:80;
8
+ listen <%= nginx_vhost_listen_ip %><%= ':' unless nginx_vhost_listen_ip.nil? %>80;
9
9
  server_name <%= domain %> <%= Array(web_server_aliases).join(' ') %>;
10
10
  root <%= deploy_to %>/current/public;
11
11
  client_max_body_size <%= nginx_client_max_body_size %>;
12
12
  access_log <%= shared_path %>/log/access.log;
13
13
  error_log <%= shared_path %>/log/error.log;
14
14
 
15
- <% if force_domain_with_www -%>
15
+ <%- if force_domain_with_www -%>
16
16
  if ($host !~* ^www.<%= domain %>$) {
17
17
  rewrite ^(.*) http://www.<%= domain %>$1 permanent;
18
18
  }
19
- <% end -%>
19
+ <%- end -%>
20
20
 
21
21
  location / {
22
- <% if nginx_secured_site -%>
22
+ <%- if nginx_secured_site -%>
23
23
  auth_basic "Limited access";
24
24
  auth_basic_user_file <%= "#{deploy_to}/nginx/.htaccess" %>;
25
- <% end -%>
26
- try_files $uri @upstream;
25
+ <%- end -%>
26
+ try_files $uri/index.html $uri @upstream;
27
27
  }
28
28
 
29
29
  location @upstream {
@@ -35,32 +35,31 @@ server {
35
35
  proxy_set_header X-Forwarded-Proto http;
36
36
  }
37
37
 
38
- # This allows people to use images and css in their maintenance.html file
38
+ # this allows people to use images and css in their maintenance.html file
39
39
  if ($request_filename ~* \.(css|jpg|gif|png)$) {
40
40
  break;
41
41
  }
42
42
 
43
- # Rewrite all the requests to the maintenance.html page if it exists.
43
+ # rewrite all the requests to the maintenance.html page if it exists
44
44
  if (-f $document_root/system/maintenance.html) {
45
45
  return 503;
46
46
  }
47
47
 
48
- # set Expire header on assets: see http://developer.yahoo.com/performance/rules.html#expires
48
+ # set Expire header on assets
49
49
  location ~ ^/(images|javascripts|stylesheets)/ {
50
- expires max;
51
- error_page 404 = @upstream;
50
+ if ($request_method = GET) {
51
+ expires 1y;
52
+ }
52
53
  }
53
-
54
54
  location ~ ^/assets/ {
55
55
  expires max;
56
56
  add_header Cache-Control public;
57
57
  add_header ETag "";
58
- error_page 404 = @upstream;
58
+ break;
59
59
  }
60
60
 
61
61
  error_page 404 /404.html;
62
62
  error_page 500 502 504 /500.html;
63
-
64
63
  error_page 503 @503;
65
64
  location @503 {
66
65
  rewrite ^(.*)$ /system/maintenance.html break;
@@ -12,18 +12,18 @@ server {
12
12
  access_log <%= shared_path %>/log/access.log;
13
13
  error_log <%= shared_path %>/log/error.log;
14
14
 
15
- <% if force_domain_with_www -%>
15
+ <%- if force_domain_with_www -%>
16
16
  if ($host !~* ^www.<%= domain %>$) {
17
17
  rewrite ^(.*) http://www.<%= domain %>$1 permanent;
18
18
  }
19
- <% end -%>
19
+ <%- end -%>
20
20
 
21
21
  location / {
22
- <% if nginx_secured_site -%>
22
+ <%- if nginx_secured_site -%>
23
23
  auth_basic "Limited access";
24
24
  auth_basic_user_file <%= "#{deploy_to}/nginx/.htaccess" %>;
25
- <% end -%>
26
- try_files $uri @upstream;
25
+ <%- end -%>
26
+ try_files $uri/index.html $uri @upstream;
27
27
  }
28
28
 
29
29
  location @upstream {
@@ -35,32 +35,31 @@ server {
35
35
  proxy_set_header X-Forwarded-Proto http;
36
36
  }
37
37
 
38
- # This allows people to use images and css in their maintenance.html file
38
+ # this allows people to use images and css in their maintenance.html file
39
39
  if ($request_filename ~* \.(css|jpg|gif|png)$) {
40
40
  break;
41
41
  }
42
42
 
43
- # Rewrite all the requests to the maintenance.html page if it exists.
43
+ # rewrite all the requests to the maintenance.html page if it exists
44
44
  if (-f $document_root/system/maintenance.html) {
45
45
  return 503;
46
46
  }
47
47
 
48
- # set Expire header on assets: see http://developer.yahoo.com/performance/rules.html#expires
48
+ # set Expire header on assets
49
49
  location ~ ^/(images|javascripts|stylesheets)/ {
50
- expires max;
51
- error_page 404 = @upstream;
50
+ if ($request_method = GET) {
51
+ expires 1y;
52
+ }
52
53
  }
53
-
54
54
  location ~ ^/assets/ {
55
55
  expires max;
56
56
  add_header Cache-Control public;
57
57
  add_header ETag "";
58
- error_page 404 = @upstream;
58
+ break;
59
59
  }
60
60
 
61
61
  error_page 404 /404.html;
62
62
  error_page 500 502 504 /500.html;
63
-
64
63
  error_page 503 @503;
65
64
  location @503 {
66
65
  rewrite ^(.*)$ /system/maintenance.html break;
@@ -79,17 +78,17 @@ server {
79
78
  ssl_certificate <%= deploy_to %>/nginx/<%= rails_env %>.crt;
80
79
  ssl_certificate_key <%= deploy_to %>/nginx/<%= rails_env %>.key;
81
80
 
82
- <% if force_domain_with_www -%>
81
+ <%- if force_domain_with_www -%>
83
82
  if ($host !~* ^www.<%= domain %>$) {
84
83
  rewrite ^(.*) https://www.<%= domain %>$1 permanent;
85
84
  }
86
- <% end -%>
85
+ <%- end -%>
87
86
 
88
87
  location / {
89
- <% if nginx_secured_site -%>
88
+ <%- if nginx_secured_site -%>
90
89
  auth_basic "Limited access";
91
90
  auth_basic_user_file <%= "#{deploy_to}/nginx/.htaccess" %>;
92
- <% end -%>
91
+ <%- end -%>
93
92
  try_files $uri @upstream;
94
93
  }
95
94
 
@@ -102,32 +101,31 @@ server {
102
101
  proxy_set_header X-Forwarded-Proto https;
103
102
  }
104
103
 
105
- # This allows people to use images and css in their maintenance.html file
104
+ # this allows people to use images and css in their maintenance.html file
106
105
  if ($request_filename ~* \.(css|jpg|gif|png)$) {
107
106
  break;
108
107
  }
109
108
 
110
- # Rewrite all the requests to the maintenance.html page if it exists.
109
+ # rewrite all the requests to the maintenance.html page if it exists
111
110
  if (-f $document_root/system/maintenance.html) {
112
111
  return 503;
113
112
  }
114
113
 
115
- # set Expire header on assets: see http://developer.yahoo.com/performance/rules.html#expires
114
+ # set Expire header on assets
116
115
  location ~ ^/(images|javascripts|stylesheets)/ {
117
- expires max;
118
- error_page 404 = @upstream;
116
+ if ($request_method = GET) {
117
+ expires 1y;
118
+ }
119
119
  }
120
-
121
120
  location ~ ^/assets/ {
122
121
  expires max;
123
122
  add_header Cache-Control public;
124
123
  add_header ETag "";
125
- error_page 404 = @upstream;
124
+ break;
126
125
  }
127
126
 
128
127
  error_page 404 /404.html;
129
128
  error_page 500 502 504 /500.html;
130
-
131
129
  error_page 503 @503;
132
130
  location @503 {
133
131
  rewrite ^(.*)$ /system/maintenance.html break;
@@ -1,7 +1,7 @@
1
1
  module Deploify
2
2
  MAJOR = 0
3
3
  MINOR = 2
4
- PATCH = 9
4
+ PATCH = 10
5
5
  BUILD = nil
6
6
 
7
7
  if BUILD.nil?
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: deploify
3
3
  version: !ruby/object:Gem::Version
4
- hash: 5
4
+ hash: 3
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 2
9
- - 9
10
- version: 0.2.9
9
+ - 10
10
+ version: 0.2.10
11
11
  platform: ruby
12
12
  authors:
13
13
  - Richard Riman