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

See the plugin management documentation.

Creating your own plugin

See the full documentation.

Official Plugins

The following plugins are available and provided by Dokku maintainers. Please file issues against their respective issue trackers.

Plugin

Author

Compatibility

CouchDB

dokku

0.4.0+

Elasticsearch

dokku

0.4.0+

Grafana/Graphite/Statsd

dokku

0.4.0+

MariaDB

dokku

0.4.0+

Memcached

dokku

0.4.0+

Mongo

dokku

0.4.0+

MySQL

dokku

0.4.0+

Nats

dokku

0.4.0+

Postgres

dokku

0.4.0+

RabbitMQ

dokku

0.4.0+

Redis

dokku

0.4.0+

RethinkDB

dokku

0.4.0+

Copy Files to Image

dokku

0.4.0+

HTTP Auth

dokku

0.4.0+

Let’s Encrypt

dokku

0.4.0+

Maintenance mode

dokku

0.4.0+

Redirect

dokku

0.4.0+

Registry

dokku

0.12.0+

Community plugins

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

Datastores

Caching

Plugin

Author

Compatibility

Nginx Cache

Aluxian

0.5.0+

Redis (single container)

ohardy

0.3.x

Varnish

Zenedith

Varnish cache between nginx and application with base configuration

Other

Plugin

Author

Compatibility

etcd

basgys

0.4.x

FakeSNS

cu12

0.5.0+

InfluxDB

basgys

0.4.x

RethinkDB

stuartpb

0.3.x

Headless Chrome

lazyatom

0.8.1+

Plugins Implementing New Dokku Functionality

Plugin

Author

Compatibility

App name as env

cjblomqvist

0.3.x

Docker Direct

josegonzalez

0.4.0+

Dokku Clone

crisward

0.4.0+

Dokku Copy App Config Files

josegonzalez

0.4.0+

Dockerfile custom path

mimischi

0.8.0+

Dokku Require1

crisward

0.4.0+

Global Certificates

josegonzalez

0.5.0+

Graduate (Environment Management)

Benjamin-Dobell

0.4.0+

Haproxy tcp load balancer

256dpi

0.4.0+

Hostname

michaelshobbs

0.4.0+

HTTP Auth Secure Apps

matto1990

0.4.0+

Monit (Health Checks)

mbreit

0.8.0+

Nuke Containers

josegonzalez

0.4.0+

Open App Ports

josegonzalez

0.3.x

Proctype Filter

michaelshobbs

0.4.0+

robots.txt

candlewaster

0.4.x

SSH Deployment Keys2

cedricziel

0.4.0+

SSH Hostkeys3

cedricziel

0.3.x

Application build hook

fteychene

0.4.0+

Post Deploy Script

baikunz

0.4.0+

Auto Sync4

fomojola

0.8.1+

Deploy Webhook5

fomojola

0.8.1+

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

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)

4 Adds the ability to sync an application repo with a remote Github repo (useful for automated rebuilds without needing a git push from an external system

5 Adds the ability to invoke a post-deploy webhook with the IP, port and app name, all with a single config:set).

Deprecated Plugins

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

Plugin

Author

In Dokku Since

App User

michaelshobbs

v0.7.1 (herokuish 0.3.18)

Custom Domains

motin

v0.3.10 (domains plugin)

Debug

josegonzalez

v0.3.9 (trace command)

Docker Options

dyson

v0.3.17 (docker-options plugin)

Dokku Name

alex-sherwin

v0.4.2 (named containers plugin)

Events Logger

alessio

v0.3.21 (events plugin)

git rev-parse HEAD in env

cjblomqvist

v0.12.0 (enhanced core git plugin)

Host Port binding

stuartpb

v0.3.17 (docker-options plugin)

Link Containers

rlaneve

v0.3.17 (docker-options plugin)

List Containers

josegonzalez

v0.3.14 (ps plugin)

Multi-Buildpack

pauldub

v0.4.0 (herokuish)

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)

Pre-Deploy Tasks

michaelshobbs

v0.5.0 (deployment tasks)

PrimeCache

darkpixel

v0.3.0 (zero downtime deploys)

Process Manager: Circus

apmorton

v0.3.14/0.7.0 (ps/restart policy plugin)

Process Manager: Forego

Flink

v0.3.14/0.7.0 (ps plugin)

Process Manager: Forego

iskandar

v0.3.14/0.7.0 (ps plugin)

Process Manager: Logging Supervisord

sehrope

v0.3.14/0.7.0 (ps plugin)

Process Manager: Shoreman

statianzo

v0.3.14/0.7.0 (ps plugin)

Process Manager: Supervisord

statianzo

v0.3.14/0.7.0 (ps plugin)

Rebuild application

scottatron

v0.3.14 (ps plugin)

Reset mtime

mixxorz

Docker 1.8+

Supply env vars to buildpacks2

cameron-martin

v0.3.9 (build-env plugin)

user-env-compile2

motin

v0.3.9 (build-env plugin)

user-env-compile2

musicglue

v0.3.9 (build-env plugin)

VHOSTS Custom Configuration

motin

v0.3.10 (domains plugin)

Volume (persistent storage)

ohardy

v0.5.0 (storage 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

Chef cookbooks

fgrehm

CouchDB (multi containers)

Flink

0.4.0+

CouchDB

RaceHub

Compatible with 0.2.0

Dokku Copy App Config Files

alexkruegger

Compatible with 0.3.17+

Dokku Registry

agco-adm

0.4.0+

Elasticsearch

robv

Not compatible with >= 0.3.0 (still uses /home/git)

Elasticsearch1

blag

Compatible with 0.2.0

Graphite/statsd

jlachowski

< 0.4.0

HipChat Notifications

cef

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

Redis

sekjun9878

0.3.26+

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.