README.md
# Dokkufy
[![Gem Version](https://badge.fury.io/rb/dokkufy.svg)](http://badge.fury.io/rb/dokkufy) [![Code Climate](https://codeclimate.com/github/cbetta/dokkufy/badges/gpa.svg)](https://codeclimate.com/github/cbetta/dokkufy) ![](http://ruby-gem-downloads-badge.herokuapp.com/dokkufy?type=total)
A [Dokku](https://github.com/progrium/dokku) toolbelt inspired by the [Heroku toolbelt](https://toolbelt.heroku.com/)
## Installation
```
gem install dokkufy
```
## Basic usage
Want to build your own Heroku? Dokku and Dokkufy make this possible.
1. Spin up a Ubuntu 12.04 or 14.04 server
2. Dokkufy your server using `dokkufy server`
3. Change directories to your app
4. Dokkufy your app `dokkufy app`
5. Deploy your app `git push dokku master`
## Commands
Most commands take their parameters as command line arguments or through an interactive prompt.
```
dokkufy <command>
help shows this list
server installs Dokku on a Ubuntu 12.04 or 14.04 server
server:upgrade upgrades a Dokku server
plugin:list shows a list of Dokku plugins
plugin:install installs a plugin on the server
plugin:uninstall uninstalls a plugin on the server
app adds a dokku remote for a server to an app
app:clear removes a dokku remote for a server for an app
```
### dokkufy server
```sh
dokkufy server <hostname> <username> <domain> --version <version>
```
Installs Dokku on server at IP or Hostname `<hostname>`, using the `<username>` account to install the software.
It also sets up the app on domain `<domain>`, resulting in all apps being served as a subdomain of that domain.
Optionally this takes a `<version>` to specify the [Dokku tag](https://github.com/progrium/dokku/tags).
### dokkufy plugin:list
```sh
dokkufy plugin:list
```
Lists all plugins as listed on the [Dokku wiki](http://progrium.viewdocs.io/dokku/plugins/). Only supports plugins that follow the standard install procedure.
### dokkufy plugin:install
```sh
dokkufy plugin:install <plugin_name_or_id> [<hostname> <username>]
```
Installs a Dokku plugin either by name or ID (as received by `dokkufy plugin:list`) on a server. Only supports the standard install procedure. Check the plugins wiki for any additional install notes.
### dokkufy plugin:uninstall
```sh
dokkufy plugin:uninstall <plugin_name_or_id> [<hostname> <username>]
```
Uninstalls a Dokku plugin either by name or ID (as received by `dokkufy plugin:list`) on a server. Simply performs a delete of the folder. Server instances already deployed with this plugin will need to be redeployed.
### dokkufy app
```sh
dokkufy app <git_repo> [OR <hostname> <dokku_username>]
```
Adds a dokku remote to the local git repository for an app. Also writes this remote to a `.dokkurc` file.
### dokkufy app:clear
```sh
dokkufy app:clear
```
Removes any `dokku` remotes for the local git repository and deletes the `.dokkurc` file.
## Release notes
* **0.2.1** Updated the Plugin URL
* **0.2.0** Dropped Toolchain functionality in favor of other tools
* **0.1.6** Locking dependencies down further
* **0.1.5** Using classic style commander
* **0.1.4** Checks for SSH key before installing on server
* **0.1.3** Applies double install fix on 14.04
* **0.1.0** Adds the `dokku` command
* **0.0.7** Adds the (un)dokkufication of apps
* **0.0.6** Adds plugin uninstall
* **0.0.5** Small bug fix to plugin installs
* **0.0.4** Adds plugin listing and installing
* **0.0.3** Determines latest version from Dokku github page
* **0.0.2** Added `server` command
* **0.0.1** Gem skeleton
## Contributing
1. Fork it
2. Create your feature branch (git checkout -b my-new-feature)
3. Commit your changes (git commit -am 'Add some feature')
4. Push to the branch (git push origin my-new-feature)
5. Create new Pull Request
## License
See [LICENSE](https://github.com/cbetta/dokkufy/blob/master/LICENSE)