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
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
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 (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 | 
| 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+ | 
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)
Other Plugins
| Plugin | Author | Compatibility | 
|---|---|---|
| Airbrake deploy | Flink | 0.4.0+ | 
| APT | dokku-community | 0.18.x+ | 
| Bower install | alexanderbeletsky | 0.3.x | 
| Bower/Grunt | thrashr888 | 0.3.x | 
| Bower/Gulp | gdi2290 | 0.3.x | 
| Bower/Gulp | jagandecapri | 0.3.x | 
| Builders: bower, compass, gulp, grunt | ignlg | 0.4.0+ | 
| Chef cookbook | nickcharlton | |
| Docker auto persist volumes | Flink | 0.4.0+ | 
| Hostname | michaelshobbs | 0.4.0+ | 
| Limit (Resource management) | sarendsen | 0.9.0+ | 
| Logspout | michaelshobbs | 0.4.0+ | 
| Syslog | michaelshobbs | 0.10.4+ | 
| Long Timeout | investtools | 0.4.0+ | 
| Monit | cjblomqvist | 0.3.x | 
| Monorepo | iamale | 0.4.0+ | 
| Multi Dockerfile | artofrawr | 0.4.0+ | 
| Node | ademuk | 0.3.x | 
| Node | pnegahdar | 0.3.x | 
| Rollbar | iloveitaly | 0.5.0+ | 
| Slack Notifications | ribot | 0.4.0+ | 
| Telegram Notifications | m0rth1um | 0.4.0+ | 
| Tor | michaelshobbs | 0.4.0+ | 
| User ACL | Maciej Łebkowski | 0.4.0+ | 
| Webhooks | nickstenning | 0.3.x | 
| Wkhtmltopdf | mbriskar | 0.4.0+ | 
| Dokku Wordpress | dokku-community | 0.4.0+ | 
| Access | mainto | 0.4.0+ | 
| Dokku Nginx Trust Proxy | kingsquare | 0.4.0+ | 
| Fonts | ollej | 0.19.11+ | 
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.