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 |
---|---|---|
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 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 |
Multicast DNS (mDNS) | calyhre | 0.33.0+ |
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+ |
SSH Deployment Keys | dokku | v0.33.0 (git plugin) |
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.