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+ |
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).
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+ |
Discourse | badsyntax | 0.21.4+ |
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 | neam | 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) |
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 |
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.