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.
Every datastore below is also served by the datastore plugin Dokku ships, as in dokku datastore:create postgres lollipop. See the datastore management documentation for more information.
| 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+ |
| HTTP OAuth | cheif | 0.4.0+ |
Plugins Implementing New Dokku Functionality¶
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+ |
| LibreDB Studio (database GUI) | libredb | 0.35.20+ |
| Tailscale | andrew-womeldorf | 0.34.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.