Skip to content

Plugins

Dokku itself is built out of plugins and uses pluginhook 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/
├── commands     # contains additional commands
├── install      # runs on dokku installation
└── post-deploy  # runs after an app is deployed

Installing a plugin

Creating your own plugin

cd /var/lib/dokku/plugins
git clone <git url>
dokku plugins-install

See the full documentation.

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 Compatible with 0.2.0
MariaDB (single container) ohardy Compatible with 0.2.0
MySQL hughfletcher
PostgreSQL Kloadut Compatible with 0.2.0
PostgreSQL jlachowski IP & PORT available directly in linked app container env variables (requires link plugin)
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).
PostgreSQL (single container) ohardy Compatible with 0.2.0
PostgreSQL (single container) Flink Single Postgresql container with official Postgresql docker image. Compatible with 0.3.16
PostGIS fermuch

Caching

Plugin Author Compatibility
Memcached jlachowski IP & PORT available directly in linked app container env variables (requires link plugin)
Redis luxifer
Redis sekjun9878 A better Redis plugin with automatic instance creation and Dokku Link support
Redis (single container) ohardy Compatible with 0.2.0
Varnish Zenedith Varnish cache between nginx and application with base configuration

Queuing

Plugin Author Compatibility
RabbitMQ jlachowski IP & PORT available directly in linked app container env variables (requires link plugin)
RabbitMQ (single container) jlachowski IP & PORT available directly in linked app container env variables (requires link plugin)

Other

Plugin Author Compatibility
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
MongoDB (single container) jeffutter
Neo4j Aomitayo
RethinkDB stuartpb 2014-02-22: targeting dokku @ latest; will fail with Dokku earlier than 28de3ec.
RiakCS (single container) jeffutter Incompatible with 0.2.0 (checked at dccee02)

Process Managers

Plugin Author Compatibility
Circus apmorton
Forego iskandar Compatible with 0.2.x
Logging Supervisord sehrope Works with dokku @ c77cbf1 - no 0.2.0 compatibility
Monit cjblomqvist
Shoreman statianzo Compatible with 0.2.0
Supervisord statianzo Compatible with 0.2.0

Dokku Features

Plugin Author Compatibility
app-url mikecsh Works with 0.2.0
Docker Direct heichblatt
Dokku Name alex-sherwin dokku >= c77cbf1
Dokku Registry1 agco-adm
git rev-parse HEAD in env cjblomqvist Compatible with 0.3.0
Graduate (Environment Management) Benjamin-Dobell dokku >= v0.3.14
HTTP Auth Flink
HTTP Auth Secure Apps matto1990 Works with v0.2.3
Hostname michaelshobbs
Link Containers rlaneve dokku >= c77cbf1
Maintenance mode Flink
Multi-Buildpack pauldub
Ports heichblatt
Pre-Deploy Tasks michaelshobbs
SSH Deployment Keys2 cedricziel 2014-01-17: compatible with upstream/master
SSH Hostkeys3 cedricziel 2014-01-17: compatible with upstream/master
Volume (persistent storage) ohardy Compatible with 0.2.0
App Configfiles alexkruegger Compatible with 0.3.17+

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 Adds the possibility to add SSH deployment keys to receive private hosted packages

3 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
APT F4-Group
Chef cookbooks fgrehm
Bower install alexanderbeletsky
Bower/Grunt thrashr888
Bower/Gulp gdi2290
Bower/Gulp jagandecapri
Docker auto volumes Flink 0.3.17+, auto-persist docker volumes
HipChat Notifications cef
Graphite/statsd jlachowski
Logspout michaelshobbs
Node pnegahdar
Node ademuk
Rails logs Flink
Reset mtime mixxorz 0.3.15+, Dockerfile support
Slack Notifications ribot
User ACL Maciej Łebkowski
Webhooks nickstenning
Wordpress abossard Dokku dev, mariadb, volume, domains

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)
Multiple Domains1 wmluke v0.3.10 (domains 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)