Skip to content

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
Clickhouse dokku 0.4.0+
Copy Files to Image dokku 0.4.0+
CouchDB dokku 0.4.0+
Cron Restart dokku 0.30.0+
Elasticsearch dokku 0.4.0+
Grafana/Graphite/Statsd dokku 0.4.0+
HTTP Auth dokku 0.4.0+
Let's Encrypt dokku 0.4.0+
Maintenance mode dokku 0.4.0+
MariaDB dokku 0.4.0+
Meilisearch dokku 0.4.0+
Memcached dokku 0.4.0+
Mongo dokku 0.4.0+
MySQL dokku 0.4.0+
Nats dokku 0.4.0+
Omnisci dokku 0.4.0+
Postgres dokku 0.4.0+
Pushpin dokku 0.4.0+
RabbitMQ dokku 0.4.0+
Redirect dokku 0.4.0+
Redis dokku 0.4.0+
Registry dokku 0.12.0+
RethinkDB dokku 0.4.0+
Scheduler Kubernetes dokku 0.4.0+
Scheduler Nomad dokku 0.4.0+
Solr dokku 0.4.0+
SSH Deployment Keys dokku 0.4.0+
SSH Hostkeys dokku 0.4.0+
Typesense dokku 0.4.0+

Community plugins

Warning

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+
Edgedb ignisda 0.27.0+

NewSQL

Plugin Author Compatibility
Surrealdb ignisda 0.27.0+

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

Queuing

Plugin Author Compatibility
RabbitMQ jlachowski 0.3.x
RabbitMQ (single container) jlachowski 0.3.x
ElasticMQ (SQS compatible) cu12 0.5.0+
VerneMQ (MQTT Broker) mrname 0.4.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
Headless Chrome lazyatom 0.8.1+

Plugins Implementing New Dokku Functionality

Plugin Author Compatibility
App name as env cjblomqvist 0.3.x
APT dokku-community 0.18.x+
Auto Sync1 fomojola 0.8.1+
Deploy Webhook2 fomojola 0.8.1+
Docker auto persist volumes flink 0.4.0+
Docker Direct josegonzalez 0.4.0+
Dokku Clone crisward 0.4.0+
Dokku Copy App Config Files josegonzalez 0.4.0+
Dokku Require3 crisward 0.4.0+
Global Certificates josegonzalez 0.5.0+
Graduate (Environment Management) benjamin-dobell 0.4.0+
Host post-build command hook baikunz 0.4.0+
Host pre-build command hook fteychene 0.4.0+
Hostname michaelshobbs 0.4.0+
Hostname michaelshobbs 0.4.0+
HTTP Auth Secure Apps matto1990 0.4.0+
Litestream4 AxelTheGerman 0.27.0+
Monit (Health Checks) mbreit 0.8.0+
Monit cjblomqvist 0.3.x
Nuke Containers josegonzalez 0.4.0+
Proctype Filter michaelshobbs 0.4.0+
robots.txt candlewaster 0.4.x
Tor michaelshobbs 0.4.0+
UFW josegonzalez 0.3.x
User Access mainto 0.4.0+
User ACL maciej łebkowski 0.4.0+

1 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

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

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

4 Adds SQLite replication to external object storage via Litestream

Other Plugins

Plugin Author Compatibility
Chef cookbook nickcharlton
Discourse badsyntax 0.21.4+
Wordpress dokku-community 0.4.0+

Deprecated Plugins

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

Plugin Author In Dokku Since
Airbrake deploy flink v0.5.0 (deployment tasks)
App User michaelshobbs v0.7.1 (herokuish 0.3.18)
Bower/Grunt thrashr888 v0.5.0 (deployment tasks and .buildpacks)
Bower/Gulp gdi2290 v0.5.0 (deployment tasks and .buildpacks)
Bower install alexanderbeletsky v0.5.0 (deployment tasks and .buildpacks)
Bower/Gulp jagandecapri v0.5.0 (deployment tasks and .buildpacks)
Builders: bower, compass, gulp, grunt ignlg v0.5.0 (deployment tasks and .buildpacks)
Custom Domains neam v0.3.10 (domains plugin)
Debug josegonzalez v0.3.9 (trace command)
Dockerfile custom path mimischi v0.25.0 (monorepo support)
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)
Fonts ollej v0.5.0 (deployment tasks)
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)
Logspout michaelshobbs v0.22.6 (vector log shipping)
Long Timeout investtools v0.21.0 (proxy-read-timeout nginx setting)
Monorepo iamale v0.25.0 (monorepo builder support)
Multi-Buildpack pauldub v0.4.0 (herokuish)
Multiple Domains1 wmluke v0.3.10 (domains plugin)
Multi Dockerfile artofrawr v0.25.0 (monorepo support)
Named-containers flink v0.4.2 (named-containers plugin)
Nginx Trust Proxy kingsquare v0.23.0 (nginx x-forwarded-* properties)
Node ademuk v0.5.0 (deployment tasks and .buildpacks)
Node pnegahdar v0.5.0 (deployment tasks and .buildpacks)
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)
Rollbar iloveitaly v0.5.0 (deployment tasks)
Syslog michaelshobbs v0.22.6 (vector log shipping)
Haproxy tcp load balancer 256dpi v0.28.0 (haproxt plugin)
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)
Slack Notifications ribot v0.5.0 (deployment tasks)
Telegram Notifications m0rth1um v0.5.0 (deployment tasks)
user-env-compile2 motin v0.3.9 (build-env plugin)
user-env-compile2 musicglue v0.3.9 (build-env plugin)
Volume (persistent storage) ohardy v0.5.0 (storage plugin)
Webhooks nickstenning v0.5.0 (deployment tasks)
Wkhtmltopdf mbriskar v0.5.0 (deployment tasks)

1 Conflicts with VHOSTS Custom Configuration 2 Similar to the heroku-labs feature

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).
Redis luxifer
Redis sekjun9878 0.3.26+
RiakCS (single container) jeffutter Incompatible with 0.2.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.