Heroku-like command line interface for Dokku
Note: This project is in the very early stages of development. You can help by adding commands (see below).
pip install dokku-client
You can specify the Dokku host & app on the command line, but you may find it convenient to set the following environment variables instead:
export DOKKU_HOST=ubuntu@myserver.com
export DOKKU_APP=my-app-name
Setting these variables in your virtualenv's postactivate hook may be useful.
Once installed, usage is simple:
dokku-client help
Produces:
Client for Dokku
usage:
dokku-client <command> [<args>...]
dokku-client help
global options:
-H <host>, --host=<host> Host address
-a <app>, --app=<app> App name
full list of available commands:
help Show this help message
configget Set one or more config options
configset Set one or more config options in the app's ENV file
prompt Open a prompt
restart Restart the container
See 'git help <command>' for more information on a specific command.
Dokku-client allows any developer to hook in extra commands. This is done using
exactly the same mechanism that dokku-client uses internally, that of entry points
provided by setuptools
.
First, create a python package. You may have your own favorite way of doing this, but I use seed:
mkdir dokku-client-mycommand
cd dokku-client-mycommand
pip install seed
seed create
ls
Second, create a class which extends dokku_client.BaseCommand
and implements the method
main(args)
. Also, the doc-block at the top
of the class will be used by docopt to parse any command line arguments, so make
sure you include that. See the prompt command for an example.
And third, in your new setup.py
file, specify your new class as an entry point:
entry_points={
'dokku_client.commands': [
'mycommand = dokku_client_mycommand.mycommand:MyCommand',
],
}
Run setup.py
so that the new entry point is initialized:
# Run in develop mode, so files will not be copied away.
# You can continue to edit your code as usual
python setup.py develop
You should now find that your new command is available in dokku-client,
run dokku-client help
to check.
Once done, you can release your package to PyPi using seed release --initial
.