dokku-nginx-alt is a alternative plugin for dokku's built in nginx-vhosts. This plugin supports:
- Multiple custom domains for each app (e.g. myapp.com, www.myapp.com, and
production.myapp.com can all be served by the same app). These domains
are defined in the
VHOST
file, with each domain name on a new line. - Ability to override
nginx.conf
. Simply placenginx.tpl
ornginx.ssl.tpl
files into the app's home directory (i.e./home/dokku/[app name]/
). Upon push, these templates will be used.
In more detail:
- Moved configuration file from
post-deploy
into separate template files:nginx.conf
andnginx.ssl.conf
. - Ability to override default .conf files with user's own nginx configuration
files placed in
/home/dokku/$APP/
. - Ability to deploy an app under multiple custom domains. The
VHOST
file can now contain a list of domains that nginx will serve to. VHOST
file is decoupled frompost-deploy
in thatpost-deploy
no longer overwritesVHOST
after each deploy. Custom domains are set independently in theVHOST
file.- Ability to mix SSL and non-SSL domains. For example,
VHOST
may containmydomain.com
and*.mydomain.com
where SSL certificates only apply to*.mydomain.com
. This plugin generates both SSL configurations for the wildcard domains and non-SSL configuration for the root domain. - Added helper messages during deploy.
This plugin has been tested on dokku version 0.2.3.
-
Install the plugin by cloning into the dokku plugins directory:
git clone https://github.com/mikexstudios/dokku-nginx-alt.git /var/lib/dokku/plugins/nginx-alt
Do not delete the existing
nginx-vhosts/
plugin that ships with dokku. -
Then run dokku's plugin install:
dokku plugins-install
This step renames
nginx-vhosts/
to.nginx-vhosts/
and calls.nginx-vhosts/install
. -
Create a
VHOST
file in your dokku app directory (e.g./home/dokku/[app name]/VHOST
) and add each domain name on a separate line. -
To override the default
nginx.conf
and/ornginx.ssl.conf
templates, place copies renamed asnginx.tpl
and/ornginx.ssl.tpl
in your/home/dokku/[app name]/
directory. When you re-push your application, you should see a message like:-----> Overriding default SSL nginx.conf with detected nginx.tpl...
-
Re-push your app.
backup-export
andbackup-import
hook scripts have intentionally not been included to reduce the complexity of this plugin.
The MIT License (MIT)