Plugins

Dokku itself is built out of plugins and uses plugn for its plugin system. In essence a plugin is a collection of scripts that will be run based on naming convention.

Let's take a quick look at the current dokku nginx plugin that's shipped with dokku by default.

nginx-vhosts/
├── plugin.toml  # plugin metadata
├── commands     # contains additional commands
├── install      # runs on dokku installation
└── post-deploy  # runs after an app is deployed

Installing a plugin

# This command requires `root` permissions as the `install` and `install-dependencies`
# plugin triggers may utilize commands such as `apt-get`. For non-core plugins, please
# inspect those plugins before running the following command as `root` user.
sudo dokku plugin:install <git_url> [--committish tag/branch/commit|--name custom-plugin-name]

# previous versions (0.3.x and below) of dokku require a manual process to install plugins
cd /var/lib/dokku/plugins
git clone <git url>
dokku plugins-install

Creating your own plugin

See the full documentation.

Official Plugins (Beta)

The following plugins are available and provided by dokku maintainers. Where noted, these plugins should be considered beta software and may not have been used as thoroughly as community plugins. Please file issues against their respective issue trackers.

Plugin Author Compatibility
CouchDB (beta) dokku 0.4.0+
Elasticsearch (beta) dokku 0.4.0+
MariaDB (beta) dokku 0.4.0+
Memcached (beta) dokku 0.4.0+
Mongo (beta) dokku 0.4.0+
MySQL (beta) dokku 0.4.0+
Nats (beta) dokku 0.4.0+
Postgres (beta) dokku 0.4.0+
RabbitMQ (beta) dokku 0.4.0+
Redis (beta) dokku 0.4.0+
RethinkDB (beta) dokku 0.4.0+
Copy Files to Image dokku 0.4.0+
HTTP Auth (beta) dokku 0.4.0+
Let's Encrypt (beta) dokku 0.4.0+
Maintenance mode (beta) dokku 0.4.0+
Redirect (beta) dokku 0.4.0+

Community plugins

Note: The following plugins have been supplied by our community and may not have been tested by dokku maintainers.

Datastores

Relational

Plugin Author Compatibility
MariaDB Kloadut 0.3.x
MariaDB (single container) ohardy 0.3.x
MariaDB (single container) krisrang 0.3.26+
PostgreSQL jlachowski 0.3.x
PostgreSQL (single container) ohardy 0.3.x
PostgreSQL (single container) Flink 0.3.26+

Caching

Plugin Author Compatibility
Nginx Cache Aluxian 0.5.0+
Redis sekjun9878 0.3.26+
Redis (single container) ohardy 0.3.x
Varnish Zenedith Varnish cache between nginx and application with base configuration

Queuing

Plugin Author Compatibility
RabbitMQ jlachowski 0.3.x
RabbitMQ (single container) jlachowski 0.3.x
ElasticMQ (SQS compatible) [cu12][] 0.5.0+

Other

Plugin Author Compatibility
etcd basgys 0.4.x
FakeSNS [cu12][] 0.5.0+
InfluxDB basgys 0.4.x
RethinkDB stuartpb 0.3.x

Process Managers

Plugin Author Compatibility
Circus apmorton
Forego iskandar Compatible with 0.2.x
Forego Flink 0.4.0+
Logging Supervisord sehrope 0.4.0+
Monit cjblomqvist 0.3.x
Shoreman statianzo 0.3.x
Supervisord statianzo 0.3.x

Dokku Features

Plugin Author Compatibility
App name as env cjblomqvist 0.3.x
App User michaelshobbs 0.4.0+
Dokku Clone crisward 0.4.0+
Docker Direct heichblatt
Dokku Copy App Config Files alexkruegger Compatible with 0.3.17+
Dokku Copy App Config Files heichblatt
Dokku Name alex-sherwin dokku >= c77cbf1
Dokku Registry1 agco-adm 0.4.0+
Dokku Require2 crisward 0.4.0+
git rev-parse HEAD in env cjblomqvist 0.4.0+
Graduate (Environment Management) Benjamin-Dobell 0.3.14+
Haproxy tcp load balancer 256dpi 0.4.0+
HTTP Auth Secure Apps matto1990 0.4.0+
Hostname michaelshobbs 0.4.0+
Multi-Buildpack pauldub
Nuke Containers heichblatt
Open App Ports heichblatt
Pre-Deploy Tasks michaelshobbs 0.4.0+
Proctype Filter michaelshobbs 0.4.0+
SSH Deployment Keys3 cedricziel 0.3.x
SSH Hostkeys4 cedricziel 0.3.x
Volume (persistent storage) ohardy 0.3.x

1 On Heroku similar functionality is offered by the heroku-labs pipeline feature, which allows you to promote builds across multiple environments (staging -> production)

2 Extends app.json support to include creating volumes and creating / linking databases on push

3 Adds the possibility to add SSH deployment keys to receive private hosted packages

4 Adds the ability to add custom hosts to the containers known_hosts file to be able to ssh them easily (useful with deployment keys)

Other Plugins

Plugin Author Compatibility
Airbrake deploy Flink 0.4.0+
APT F4-Group 0.2.0+ (tag 0.2.0), 0.3.0+ (tag 0.3.0), 0.4.0+
Chef cookbooks fgrehm
Bower install alexanderbeletsky
Bower/Grunt thrashr888
Bower/Gulp gdi2290
Bower/Gulp jagandecapri
Builders: bower, compass, gulp, grunt ignlg 0.4.0+
Docker auto persist volumes Flink 0.4.0+
HipChat Notifications cef
Graphite/statsd jlachowski <0.4.0
Graphite/statsd jlachowski 0.4.0+, graphite & statsd plugin with grafana dashboard frontend
Logspout michaelshobbs 0.3.26+
Monorepo iamale 0.4.0+
Node pnegahdar
Node ademuk
Reset mtime mixxorz 0.3.15+, Dockerfile support
Slack Notifications ribot 0.4.0+
Tor michaelshobbs 0.4.0+
User ACL Maciej Łebkowski 0.4.0+
Webhooks nickstenning
Wkhtmltopdf mbriskar
Wordpress abossard Dokku dev, mariadb, volume, domains
Long Timeout [investtools][] 0.4.0+
Hostname michaelshobbs 0.4.0+
Rollbar [iloveitaly][] 0.5.0+

1 Forked from jezdez/dokku-elasticsearch-plugin: uses Elasticsearch 1.2 (instead of 0.90), doesn't depend on dokku-link, runs as elasticsearch user instead of root, and turns off multicast autodiscovery for use in a VPS environment.

Deprecated Plugins

The following plugins have been removed as their functionality is now in Dokku Core.

Plugin Author In Dokku Since
Custom Domains motin v0.3.10 (domains plugin)
Debug heichblatt v0.3.9 (trace command)
Docker Options dyson v0.3.17 (docker-options plugin)
Events Logger alessio v0.3.21 (events plugin)
Host Port binding stuartpb v0.3.17 (docker-options plugin)
List Containers heichblatt v0.3.14 (ps plugin
Link Containers rlaneve v0.3.17 (docker-options plugin)
Multiple Domains1 wmluke v0.3.10 (domains plugin)
Named-containers Flink v0.4.2 (named-containers plugin)
Nginx-Alt mikexstudios v0.3.10 (domains plugin)
Persistent Storage dyson v0.3.17 (docker-options plugin)
PrimeCache darkpixel v0.3.0 (zero downtime deploys)
Rebuild application scottatron v0.3.14 (ps plugin)
Supply env vars to buildpacks2 cameron-martin v0.3.9 (build-env plugin)
user-env-compile2 musicglue v0.3.9 (build-env plugin)
user-env-compile2 motin v0.3.9 (build-env plugin)
VHOSTS Custom Configuration motin v0.3.10 (domains plugin)

1 Conflicts with VHOSTS Custom Configuration 2 Similar to the heroku-labs feature (see https://devcenter.heroku.com/articles/labs-user-env-compile)

Unmaintained Plugins

The following plugins are no longer maintained by their developers.

Plugin Author Compatibility
app-url mikecsh Works with 0.2.0
CouchDB (multi containers) Flink 0.4.0+
CouchDB RaceHub Compatible with 0.2.0
Elasticsearch robv Not compatible with >= 0.3.0 (still uses /home/git)
Elasticsearch1 blag Compatible with 0.2.0
Memcached Flink 0.4.0+
MongoDB (single container) jeffutter
MySQL hughfletcher
Neo4j Aomitayo
PostGIS fermuch
PostgreSQL (single container) jeffutter This plugin creates a single postgresql container that all your apps can use. Thus only one instance of postgresql running (good for servers without a ton of memory).
RiakCS (single container) jeffutter Incompatible with 0.2.0 (checked at dccee02)
Redis luxifer
  v: v0.6.2
Versions
On GitHub
View
Edit

Free document hosting provided by Viewdocs.