-
Notifications
You must be signed in to change notification settings - Fork 1
Plusku Rosetta Stone
This is a quick reference sheet for analogous commands between Plusku, Dokku, and the Heroku Toolbelt.
Note that this is not a series of find-and-replace rules. You should understand the differences in semantics (as explained in the sections linked in the fourth column of the table) before trying to translate from one to another.
Heroku toolbelt commands that deal with apps will read the app specified by the "heroku" Git remote in the current repo: You can use the --app
or -a
command-line option after the command to explicitly specify the app to operate on. (You can also use --remote
to specify an alternate remote to pick the app from.)
Some commands (such as fork
and apps:destroy
) will prompt you to confirm, which can be skipped by specifying the app name with the --confirm <app>
option.
dokku
commands are assumed to either be run as a logged-in user on the server, or on a client where dokku
is some kind of alias for running dokku
commands on the server. See pluchu or the Client page on the Plushu wiki.
Dokku does not support an --app
option, so the app must be explicitly specified as a positional argument to each Dokku command that deals with apps.
The listed operations for managing plugins in Dokku are performed as root, with /var/lib/dokku/plugins
as the working directory.
plushu
commands are written as they would be run by a client using the pluchu script, which, like the Heroku toolbelt, specifies the app based on the remote specified ("plushu" by default).
If run on the server, or on a client with a simpler alias, the app needs to be explicitly specified for commands that interact with apps, either as the first argument (like the commands as used by Dokku), or with an --app
option before the command.
Note that, with Plusku, the --app
option only works before the command is specified, unlike Heroku. Also, Plusku does not come with -a
as an alias for --app
, although this can be added by installing the plushu-app-short-opt plugin.
heroku | dokku | plushu | Explained |
---|---|---|---|
heroku plugins:install <url> |
git clone <url> <plugin> && dokku plugins-install |
plushu plugins:install <url> |
|
heroku plugins:uninstall <plugin> |
rm -rf <plugin> |
plushu plugins:uninstall <plugin>... |
|
heroku plugins:update [<plugin>] |
GIT_DIR=<plugin> git pull |
plushu plugins:update [<plugin>...] |
|
heroku domains |
dokku url <app> |
plushu domains:all |
Domains |
heroku config --shell |
dokku config --shell <app> |
plushu config |
|
heroku config |
dokku config <app> |
plushu config:pretty |
|
heroku fork <destapp> |
none | plushu apps:fork <destapp> |
|
heroku apps:destroy |
dokku delete <app> |
plushu apps:destroy |
|
heroku apps:open |
xdg-open http://$(dokku url <app>) |
xdg-open $(plushu domains:link | head -n 1) |
Opening |
heroku addons:list |
none | plushu services |
heroku domains
lists the app's inherent herokuapps.com
domain, along with any explicitly-configured domains.
Dokku, out-of-the-box, only recognizes one domain for an app. This may be a subdomain like Heroku's *.herokuapps.com
domains, or it may be the name of the app, if the app's name is a full domain (with dots in it).
The base plushu domains
command lists only explicitly-added domains added with plushu domains:add
, and unlike heroku domains
, does not include any inherent domains (which are, in Plushu, provided by plugins other than the plushu-domains plugin). The plushu domains:all
subcommand calls out to all Plushu plugins to list the domains provided for an app - a list that will, in the out-of-box Plusku configuration, begin with the app's implicit name (which, like Dokku, can be an implicit full domain).
The Heroku Toolbelt is designed to be run on the user's local development machine, and as such can launch the machine's browser directly. The Plushu and Dokku interfaces, conversely, are run remotely, and can only communicate with the local machine by outputting text. Both Plushu and Dokku have commands to output an app's location, which can then be used to launch the browser on the local machine using a command like xdg-open.
dokku url
outputs an app's inherent domain (as described in the "Domains" section above). As a domain is not a proper URL (as it doesn't specify the schema/protocol), this must be prefixed with "http://" manually for xdg-open to know it should be passed to the browser.
The plushu domains:link
command will list the output of plushu domains:all
as "http://"-prefixed URLs. Piping this to head -n 1
will select only the first domain (as described above, this will be the app's inherent domain).