{"action":"created","issue":{"url":"https://api.github.com/repos/dokku/dokku/issues/1892","repository_url":"https://api.github.com/repos/dokku/dokku","labels_url":"https://api.github.com/repos/dokku/dokku/issues/1892/labels{/name}","comments_url":"https://api.github.com/repos/dokku/dokku/issues/1892/comments","events_url":"https://api.github.com/repos/dokku/dokku/issues/1892/events","html_url":"https://github.com/dokku/dokku/pull/1892","id":129907100,"number":1892,"title":"nginx-vhosts rewrite","user":{"login":"michaelshobbs","id":4491438,"avatar_url":"https://avatars.githubusercontent.com/u/4491438?v=3","gravatar_id":"","url":"https://api.github.com/users/michaelshobbs","html_url":"https://github.com/michaelshobbs","followers_url":"https://api.github.com/users/michaelshobbs/followers","following_url":"https://api.github.com/users/michaelshobbs/following{/other_user}","gists_url":"https://api.github.com/users/michaelshobbs/gists{/gist_id}","starred_url":"https://api.github.com/users/michaelshobbs/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/michaelshobbs/subscriptions","organizations_url":"https://api.github.com/users/michaelshobbs/orgs","repos_url":"https://api.github.com/users/michaelshobbs/repos","events_url":"https://api.github.com/users/michaelshobbs/events{/privacy}","received_events_url":"https://api.github.com/users/michaelshobbs/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/dokku/dokku/labels/enhancement","name":"enhancement","color":"84b6eb"}],"state":"open","locked":false,"assignee":{"login":"michaelshobbs","id":4491438,"avatar_url":"https://avatars.githubusercontent.com/u/4491438?v=3","gravatar_id":"","url":"https://api.github.com/users/michaelshobbs","html_url":"https://github.com/michaelshobbs","followers_url":"https://api.github.com/users/michaelshobbs/followers","following_url":"https://api.github.com/users/michaelshobbs/following{/other_user}","gists_url":"https://api.github.com/users/michaelshobbs/gists{/gist_id}","starred_url":"https://api.github.com/users/michaelshobbs/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/michaelshobbs/subscriptions","organizations_url":"https://api.github.com/users/michaelshobbs/orgs","repos_url":"https://api.github.com/users/michaelshobbs/repos","events_url":"https://api.github.com/users/michaelshobbs/events{/privacy}","received_events_url":"https://api.github.com/users/michaelshobbs/received_events","type":"User","site_admin":false},"milestone":null,"comments":32,"created_at":"2016-01-29T23:03:41Z","updated_at":"2016-02-17T19:35:23Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/dokku/dokku/pulls/1892","html_url":"https://github.com/dokku/dokku/pull/1892","diff_url":"https://github.com/dokku/dokku/pull/1892.diff","patch_url":"https://github.com/dokku/dokku/pull/1892.patch"},"body":"This is a work in progress, **PLEASE DO NOT MERGE.** I wanted to get this up for initial feedback. The following checklist will show current progress. **Please pick this apart!**\r\n- [x] refactor into functions where possible; reduce global variables. needed access to some other plugin functionality, so I did this in those plugins as well\r\n- [x] genericize enable/disable proxy and port variables\r\n- [x] create proxy plugin\r\n- [x] support proxy with no domains attached\r\n- [x] install sigil via `Makefile`\r\n- [x] remove magic `NO_VHOST` variable. explicitly use `domains:disable/domains:enable`\r\n- [x] install sigil via package\r\n- [x] re-implement nginx config template using [sigil](https://github.com/gliderlabs/sigil)\r\n- [x] drop server-wide ssl certs\r\n- [x] add UI to manage global vhost\r\n- [x] with an ssl-enabled app, redirect all configured domains to 443\r\n- [x] show warning if no configured domains are contained in the SSL certificate details\r\n- [x] add ability to disable zero-downtime per app (added commands to checks plugin)\r\n- [x] support multiple exposed ports for dockerfile apps\r\n- [x] unify on one custom template name (`nginx.conf.sigil`)\r\n- [x] only look for nginx template in app and discard after deploy (allows easy revert to default template)\r\n- [x] look for custom template in user-specified relative repo path\r\n- [x] usage docs\r\n- [x] migration docs\r\n\r\nopen questions:\r\n- [x] if we see a dockerfile with udp port exposures, do we automatically disable proxy or do we just leave it to the user? we will leave this to the user. the nginx-vhosts plugin will ignore udp ports. however, a different proxy implementation (haproxy perhaps) could be made to do this.\r\n- [x] user configurable upstreams (this can be done with a custom template or we could add an include dir similar to this ` include {{ .DOKKU_ROOT }}/{{ .APP }}/nginx.conf.d/*.conf;` **this can be handled via a custom template now**\r\n\r\n\r\ncloses #1629\r\n"},"comment":{"url":"https://api.github.com/repos/dokku/dokku/issues/comments/185368740","html_url":"https://github.com/dokku/dokku/pull/1892#issuecomment-185368740","issue_url":"https://api.github.com/repos/dokku/dokku/issues/1892","id":185368740,"user":{"login":"josegonzalez","id":65675,"avatar_url":"https://avatars.githubusercontent.com/u/65675?v=3","gravatar_id":"","url":"https://api.github.com/users/josegonzalez","html_url":"https://github.com/josegonzalez","followers_url":"https://api.github.com/users/josegonzalez/followers","following_url":"https://api.github.com/users/josegonzalez/following{/other_user}","gists_url":"https://api.github.com/users/josegonzalez/gists{/gist_id}","starred_url":"https://api.github.com/users/josegonzalez/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/josegonzalez/subscriptions","organizations_url":"https://api.github.com/users/josegonzalez/orgs","repos_url":"https://api.github.com/users/josegonzalez/repos","events_url":"https://api.github.com/users/josegonzalez/events{/privacy}","received_events_url":"https://api.github.com/users/josegonzalez/received_events","type":"User","site_admin":false},"created_at":"2016-02-17T19:35:23Z","updated_at":"2016-02-17T19:35:23Z","body":"Fine by me, just document it."}}