Commit Graph

29 Commits

Author SHA1 Message Date
Assaf Arkin
00ec004871 Zero down-time deploy and server checks
This change makes Dokku start up the new container, run a set of checks
against it, and only switch traffic over to the new containers if all
checks complete successfully. No requests are dropped during the switch
over.

To specify checks, add a CHECKS file to the root of your project
directory. This is a text file with one line per check. Empty lines and
lines starting with # are ignored.

A check is a relative URL and may be followed by expected content from
the page, for example:

  /about     Our Amazing Team

Even if you don’t use any checks, this change will prevent downtime
during switching from old to new container.

See: https://labnotes.org/zero-downtime-deploy-with-dokku/
2014-04-28 21:28:50 -07:00
Stafford Brunk
e2135a2c5f Change cert folder name from ssl to tls 2014-04-08 06:48:50 -06:00
Stafford Brunk
22c25dc40a Implement nginx spdy support 2014-04-03 07:20:18 -06:00
Stafford Brunk
dfac47cbe2 Allow symlinks for SSL cert detection in nginx-vhosts post-deploy 2014-04-03 07:15:21 -06:00
Stafford Brunk
bd5b2b210c Factor common SSL settings out to the http block 2014-04-03 07:05:30 -06:00
Stafford Brunk
e33f5c94a5 Use listen 443 ssl instead of ssl on in vhost conf file 2014-04-03 07:04:35 -06:00
Lukas Schauer
95c9656fc8 nginx vhost ipv6 compatibility
IPv6 Compatibility (Nginx Default Site is IPv6 compatible, resulting in not-working vhosts when AAAA DNS entry is set)
2013-11-27 12:03:38 -08:00
Paul Lietar
83ce81fc51 Enable tracing in hooks when DOKKU_TRACE is set.
This makes it much easier to debug plugins.
Also source the 'dokkurc' file when starting dokku. This makes it easy
to define DOKKU_TRACE over ssh.
2013-11-18 20:59:48 +00:00
rhy-jot
3c1666076e Silence nginx reloading 2013-10-30 17:17:53 -07:00
Jeff Lindsay
df7507d1be normalizing shebang and bash options. also added long-term fix for bootstrap instructions 2013-10-29 17:13:02 -05:00
Paul Lietar
b5c8dd7436 Use DOKKU_ROOT instead of HOME.
HOME is not consistent if dokku is ran e.g. as root (for setup).
The DOKKU_ROOT variable will also make it possible to have the repositories stored in an arbitrary location (works-ish right now)
2013-10-28 21:15:17 +00:00
Jose Diaz-Gonzalez
bcfaefa896 Enable 'nginx reload' support for git and dokku user. Refs #124. Refs #186 2013-10-25 02:42:49 -04:00
Alexander
85f14baad5 Introduce URL for app. Plugins can override this.
fixes #242
2013-10-24 13:44:05 +02:00
Jason Staten
ba1f1bc30d Add X-Forwarded-Port and X-Request-Start
Adding additional proxy headers to match what Heroku provides. Also,
X-Request-Start is compatible with NewRelic's latest agent[1].

[1]: http://blog.newrelic.com/2013/02/21/using-new-relic-on-heroku-read-how-our-new-ruby-agent-measures-queue-time/
2013-09-09 15:46:19 -06:00
Jason Staten
7f4f46a1e2 Set X-Forwarded-Proto Header
Heroku passes the X-Forwarded-Proto header to indicate the protocol of
the incoming request[1]. Ruby's rack relies on this header to
determine if a request is HTTPS[2].

Also, the X-Scheme header was removed to eliminate redundant passing of
the scheme.

[1]: https://devcenter.heroku.com/articles/http-routing#heroku-headers
[2]: https://github.com/rack/rack/blob/master/lib/rack/request.rb#L77
2013-09-09 12:12:01 -06:00
Jeffery Utter
1a7d68a3fc Add nginx configure hook
This adds a pluginhook for nginx-configure to be called after the main nginx configuration is called and before nginx is reloaded. This will allow other plugins to modify the nginx configuration
2013-08-27 09:47:41 -05:00
rhy-jot
84cf39bf09 Merge pull request #145 from msumpter/patch-2
Added X-Forwarded-For to pass client IP to backend
2013-08-15 21:10:09 -07:00
alexanderbeletsky
5ef7b00243 review comment by @rhy-jot 2013-08-08 10:17:39 +03:00
alexanderbeletsky
9e9cc0c96e issue #138: added wildcard support 2013-08-05 18:17:53 +03:00
Mat Sumpter
2f92d500f8 Added X-Forwarded-For to pass client IP to backend 2013-08-05 09:37:40 -04:00
alexanderbeletsky
33a3b85674 ssl ciphers config from @rhy-jot 2013-07-31 07:00:46 +03:00
alexanderbeletsky
7f6e6ee8a4 review issues by @progrium 2013-07-24 12:13:50 +03:00
alexanderbeletsky
3bd0f6d3fb issue #101: added ssl configuration
- application folder /ssl is detected and ssl hginx config added
- readme corrections
2013-07-23 22:01:04 +03:00
Eugene Ware
f4cdc94209 don't use fully qualified name if a subdomain of $HOME/VHOST 2013-07-08 21:12:37 +10:00
Eugene Ware
3eadb0ae03 support for fully qualified domain names 2013-07-08 15:50:17 +10:00
Erik
a0eb48c32b ensure that the original http_host gets passed in the proxy to the app 2013-07-02 10:20:29 -04:00
Alexander
4f07b7af1c Escape variable in nginx post-deploy script
`$http_upgrade` is supposed to be a variable set by nginx. It was now substituted by nothing.
2013-07-01 11:33:23 +02:00
Luigi Maselli
de906a22aa websocket support in NGINX , see: #45 2013-06-30 23:44:58 +02:00
Jeff Lindsay
c4fd6d620b nginx vhosts as a plugin? 2013-06-30 11:39:05 -05:00