Dokku plugin to configure additional custom domains for your dokku app.
If you add a custom domain to your heroku app, you can count on the fact that it will work in the same manner as the appname.herokuapp.com
domain. The purpose of this plugin is to bring this possibility to dokku users.
Unlike other domain-related plugins, this plugin will update the existing app nginx.conf instead of rewriting it or coupling it with a similar but different vhost setup for the additional domains. Having to maintain two different set-ups of nginx vhost configuration would unnecessarily add to the maintenance costs, provides more sources for error, and go against the Unix philosophy: "Write programs that do one thing and do it well. Write programs to work together."
The plugin modifies the nginx "server_name" directive to include all custom domains set by domains:set
.
Dokku >= 0.3.1
git clone https://github.com/neam/dokku-custom-domains.git /var/lib/dokku/plugins/custom-domains
$ dokku help
domains <app> display the domains for an app
domains:set <app> DOMAIN1 [DOMAIN2 ...] set one or more domains
Create vhost with a custom domain:
$ dokku domains:set <app> myawesomeapp.com www.myawesomeapp.com # Server side
$ ssh dokku@server domains:set <app> myawesomeapp.com www.myawesomeapp.com # Client side
Create vhost with a second sub-domain:
$ dokku domains:set <app> subdomain.myawesomeapp.com # Server side
$ ssh dokku@server domains:set <app> subdomain.myawesomeapp.com # Client side
Create vhost with a wildcard domain:
$ dokku domains:set <app> *.myawesomeapp.com # Server side
$ ssh dokku@server domains:set <app> *.myawesomeapp.com # Client side
Create vhost with multiple additional domains:
$ dokku domains:set <app> myawesomeapp.com www.myawesomeapp.com anotherawesomedomain.com www.anotherawesomedomain.com # Server side
$ ssh dokku@server domains:set <app> myawesomeapp.com www.myawesomeapp.com anotherawesomedomain.com www.anotherawesomedomain.com # Client side
Unlike heroku that uses domains:add
and domains:remove
, this plugin has only domains:set
. To remove a domain, omit them from the arguments. So, if the domains are myawesomeapp.com www.myawesomeapp.com anotherawesomedomain.com www.anotherawesomedomain.com
and you want to remove anotherawesomedomain.com www.anotherawesomedomain.com
, run:
$ dokku domains:set <app> myawesomeapp.com www.myawesomeapp.com # Server side
$ ssh dokku@server domains:set <app> myawesomeapp.com www.myawesomeapp.com # Client side
The original domain set by dokku (through the standard nginx-vhosts plugin) is kept active.
If you destroy the app, any custom domains assigned to it will be freed. You can subsequently assign them to other apps.
This plugin uses assert.sh 1.0 - bash unit testing framework and ships with relevant tests thanks to wmluke.
To run the tests:
make test
MIT