Files
dokku/docs/plugins.md
2015-04-30 09:51:30 +02:00

20 KiB

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

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

todo: add a command to dokku to install a plugin, given a git repository dokku plugin:install <git url>?

Creating your own plugin

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 jezdez 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 jezdez Compatible with 0.2.0
Memcached jlachowski IP & PORT available directly in linked app container env variables (requires link plugin)
Redis jezdez Requires https://github.com/rlaneve/dokku-link; compatible with 0.2.0
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)
Elasticsearch jezdez Compatible with 0.2.0 to 0.3.13
Elasticsearch1 blag Compatible with 0.2.0
MongoDB (single container) jeffutter
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)
Neo4j Aomitayo

Process Managers

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

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 nornagon Compatible with 0.2.0
Graduate (Environment Management) Benjamin-Dobell dokku >= v0.3.14
HTTP Auth Secure Apps matto1990 Works with v0.2.3
Host Port binding stuartpb dokku >= c77cbf1. 2014-02-17: a043e98 targeting dokku @ latest
Hostname michaelshobbs
Link Containers rlaneve dokku >= c77cbf1
Multi-Buildpack pauldub
Nginx-Alt mikexstudios Works with v0.2.3
Persistent Storage dyson Requires dokku >= c77cbf1
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
VHOSTS Custom Configuration motin Compatible with 0.3.1
Volume (persistent storage) ohardy Compatible with 0.2.0
Maintenance mode Flink
HTTP Auth Flink

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
Wordpress [abossard][] Dokku dev, mariadb, volume, domains
Node pnegahdar
Node ademuk
Chef cookbooks fgrehm
Bower install alexanderbeletsky
Bower/Grunt thrashr888
Bower/Gulp gdi2290
HipChat Notifications cef
Slack Notifications ribot
Graphite/statsd jlachowski
APT F4-Group
User ACL [Maciej Łebkowski][]
PrimeCache darkpixel
Webhooks nickstenning
Rails logs Flink
Airbrake deploy Flink

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

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