# History ## 0.30.0 Install/update via the bootstrap script: ```shell wget https://dokku.com/install/v0.30.0/bootstrap.sh sudo DOKKU_TAG=v0.30.0 bash bootstrap.sh ``` See the [0.30.0 migration guide](/docs/appendices/0.30.0-migration-guide.md) for more information on migrating to 0.30.0. ### Bug Fixes - #5674: @josegonzalez Use authenticated requests to the github api in order to generate changelogs for a release - #5604: @josegonzalez Trigger nginx proxy rebuild early to avoid downtime if deploying large numbers of processes - #5589: @josegonzalez Use warning_scheme variable instead of bare word in caddy-vhosts warning output - #5580: @josegonzalez Do not attempt to reinstall already installed plugins ### New Features - #5663: @josegonzalez Update build-base docker image to ensure we can build on all supported platforms without stalling - #5308: @josegonzalez Implement haproxy proxy plugin - #5633: @josegonzalez Add auto-updates to docs python dependencies - #5603: @josegonzalez Add ability to deploy images generated via docker save with git:load-image - #5591: @josegonzalez Allow the herokuish builder to be detected when the computed allowed value is set not set to false - #5570: @josegonzalez Add support for customizing the remote in use for all commands sent via the official client - #5581: @josegonzalez Use short url for installation ### Refactors - #5659: @josegonzalez Remove deprecated functions and commands ### Documentation - #5658: @mpslanker Updated debian install docs to work on both debian and ubuntu - #5657: @josegonzalez Use correct version of Markdown for mkdocs - #5656: @josegonzalez Add "new as of" prefix to version in user management docs - #5645: @josegonzalez Update mkdocs-material features to cope with upgrade to 9.x - #5632: @josegonzalez Add a note mentioning that network aliases only work when attached to a network other than bridge - #5630: @josegonzalez Remove extra location block from built docs nginx config - #5616: @jcalfee Add a note about reloading nginx to troubleshooting docs - #5590: @josegonzalez Note that connecting to vagrant should be done via vagrant ssh - #5588: @josegonzalez Document how to route to server-local apps via a service proxy - #5585: @NicolasLM Improve instructions for disabling the default nginx site ### Tests - #5673: @josegonzalez Cancel in progress builds when a new commit is pushed - #5611: @josegonzalez Add more debugging output to deploy tests - #5587: @josegonzalez Timeout build jobs within 45 minutes ### Other - #5671: @dependabot[bot] chore(deps): bump soupsieve from 2.3.2.post1 to 2.4 in /docs/_build - #5666: @dependabot[bot] chore(deps): bump golang from 1.20.0 to 1.20.1 in /tests/apps/go-fail-predeploy - #5672: @dependabot[bot] chore(deps): bump django from 4.1.6 to 4.1.7 in /tests/apps/dockerfile-release - #5670: @dependabot[bot] chore(deps): bump golang from 1.20.0 to 1.20.1 in /tests/apps/zombies-dockerfile-no-tini - #5669: @dependabot[bot] chore(deps): bump golang from 1.20.0 to 1.20.1 in /tests/apps/go-fail-postdeploy - #5668: @dependabot[bot] chore(deps): bump golang from 1.20.0 to 1.20.1 in /tests/apps/gogrpc - #5667: @dependabot[bot] chore(deps): bump golang from 1.20.0 to 1.20.1 in /tests/apps/zombies-dockerfile-tini - #5665: @dependabot[bot] chore(deps-dev): bump heroku/heroku-buildpack-php from 230 to 231 in /tests/apps/php - #5664: @dependabot[bot] chore(deps): bump werkzeug from 2.2.2 to 2.2.3 in /tests/apps/python-flask - #5559: @josegonzalez Move app.json extraction from built image artifact to source code - #5661: @dependabot[bot] chore(deps): update markdown requirement from <3.4,>=3.2.1 to >=3.2.1,<3.5 in /docs/_build - #5655: @dependabot[bot] chore(deps): bump zipp from 3.12.1 to 3.13.0 in /docs/_build - #5654: @dependabot[bot] chore(deps): bump mkdocs-material from 9.0.11 to 9.0.12 in /docs/_build - #5648: @dependabot[bot] chore(deps): bump markdown from 3.3.7 to 3.4.1 in /docs/_build - #5650: @dependabot[bot] chore(deps): bump python from 3.11.1-buster to 3.11.2-buster in /tests/apps/dockerfile-release - #5651: @dependabot[bot] chore(deps): bump ruby from 3.2.0 to 3.2.1 in /tests/apps/dockerfile-entrypoint - #5652: @dependabot[bot] chore(deps): bump python from 3.11.1-alpine to 3.11.2-alpine in /docs/_build - #5647: @dependabot[bot] chore(deps): bump importlib-metadata from 4.12.0 to 6.0.0 in /docs/_build - #5646: @dependabot[bot] chore(deps-dev): bump heroku/heroku-buildpack-php from 229 to 230 in /tests/apps/php - #5634: @dependabot[bot] chore(deps): bump mkdocs-material from 8.4.2 to 9.0.11 in /docs/_build - #5637: @dependabot[bot] chore(deps): bump packaging from 21.3 to 23.0 in /docs/_build - #5643: @dependabot[bot] chore(deps): bump watchdog from 2.1.9 to 2.2.1 in /docs/_build - #5642: @dependabot[bot] chore(deps): bump pymdown-extensions from 9.5 to 9.9.2 in /docs/_build - #5639: @dependabot[bot] chore(deps): bump mkdocs from 1.3.1 to 1.4.2 in /docs/_build - #5638: @dependabot[bot] chore(deps): bump mkdocs-material-extensions from 1.0.3 to 1.1.1 in /docs/_build - #5631: @dependabot[bot] chore(deps): bump socket.io from 4.5.4 to 4.6.0 in /tests/apps/.websocket.disabled - #5636: @dependabot[bot] chore(deps): bump markupsafe from 2.1.1 to 2.1.2 in /docs/_build - #5641: @dependabot[bot] chore(deps): bump beautifulsoup4 from 4.11.1 to 4.11.2 in /docs/_build - #5635: @dependabot[bot] chore(deps): bump pygments from 2.13.0 to 2.14.0 in /docs/_build - #5640: @dependabot[bot] chore(deps): bump zipp from 3.8.1 to 3.12.1 in /docs/_build - #5629: @josegonzalez Update list indentation explaining network property utilization - #5617: @dependabot[bot] chore(deps): bump golang from 1.19.5 to 1.20.0 in /tests/apps/go-fail-predeploy - #5620: @dependabot[bot] chore(deps): bump golang from 1.19.5 to 1.20.0 in /tests/apps/gogrpc - #5618: @dependabot[bot] chore(deps): bump golang from 1.19.5 to 1.20.0 in /tests/apps/go-fail-postdeploy - #5625: @dependabot[bot] chore(deps): bump django from 4.1.2 to 4.1.6 in /tests/apps/dockerfile-release - #5619: @dependabot[bot] chore(deps): bump golang from 1.19.5 to 1.20.0 in /tests/apps/zombies-dockerfile-no-tini - #5621: @dependabot[bot] chore(deps): bump golang from 1.19.5 to 1.20.0 in /tests/apps/zombies-dockerfile-tini - #5615: @dependabot[bot] chore(deps): bump ludeeus/action-shellcheck from 1.1.0 to 2.0.0 - #5610: @dependabot[bot] chore(deps-dev): bump heroku/heroku-buildpack-php from 227 to 229 in /tests/apps/php - #5608: @josegonzalez tests: refactor the config test to use a simple python codebase instead - #5606: @josegonzalez Ensure the mounted services directory is symlinked correctly - #5558: @josegonzalez Remove references to ubuntu 18.04 ahead of EOL - #5600: @dependabot[bot] chore(deps): bump rack from 2.2.4 to 2.2.6.2 in /tests/apps/ruby - #5598: @dependabot[bot] chore(deps): bump hadolint/hadolint-action from 3.0.0 to 3.1.0 - #5595: @josegonzalez Remove deprecated ability to call logs:failed without specifying an app or --all flag - #5594: @josegonzalez Remove deprecated builder-specific post-release hooks - #5593: @josegonzalez Remove deprecated --detach flag - #5592: @josegonzalez Remove support for DOKKU_SCALE file - #5560: @josegonzalez Drop SPDY support from nginx plugin - #5579: @dependabot[bot] chore(deps): bump maven-dependency-plugin from 3.4.0 to 3.5.0 in /tests/apps/java
209 lines
7.9 KiB
Markdown
209 lines
7.9 KiB
Markdown
# Plugin Management
|
|
|
|
> New as of 0.4.0
|
|
|
|
```
|
|
plugin:disable <name> # Disable an installed plugin (third-party only)
|
|
plugin:enable <name> # Enable a previously disabled plugin
|
|
plugin:install [--core|git-url [--committish tag|branch|commit|--name custom-plugin-name]] # Optionally download git-url (with custom tag/committish) & run install trigger for active plugins (or only core ones)
|
|
plugin:installed <name> # Checks if a plugin is installed
|
|
plugin:install-dependencies [--core] # Run install-dependencies trigger for active plugins (or only core ones)
|
|
plugin:list # Print active plugins
|
|
plugin:trigger <args...>. # Trigger an arbitrary plugin hook
|
|
plugin:uninstall <name> # Uninstall a plugin (third-party only)
|
|
plugin:update [name [committish]] # Optionally update named plugin from git (with custom tag/committish) & run update trigger for active plugins
|
|
```
|
|
|
|
```shell
|
|
# for 0.3.x
|
|
cd /var/lib/dokku/plugins
|
|
git clone <git url>
|
|
dokku plugins-install
|
|
```
|
|
|
|
> These commands require `root` permissions as the `install` and `install-dependencies` plugin triggers may utilize commands such as `apt-get`. For non-core plugins, please inspect those plugins before running the following command as `root` user.
|
|
|
|
## Usage
|
|
|
|
### Listing Plugins
|
|
|
|
Installed plugins can be listed via the `plugin:list` command:
|
|
|
|
```shell
|
|
dokku plugin:list
|
|
```
|
|
|
|
```
|
|
plugn: dev
|
|
00_dokku-standard 0.30.0 enabled dokku core standard plugin
|
|
20_events 0.30.0 enabled dokku core events logging plugin
|
|
app-json 0.30.0 enabled dokku core app-json plugin
|
|
apps 0.30.0 enabled dokku core apps plugin
|
|
build-env 0.30.0 enabled dokku core build-env plugin
|
|
buildpacks 0.30.0 enabled dokku core buildpacks plugin
|
|
certs 0.30.0 enabled dokku core certificate management plugin
|
|
checks 0.30.0 enabled dokku core checks plugin
|
|
common 0.30.0 enabled dokku core common plugin
|
|
config 0.30.0 enabled dokku core config plugin
|
|
docker-options 0.30.0 enabled dokku core docker-options plugin
|
|
domains 0.30.0 enabled dokku core domains plugin
|
|
enter 0.30.0 enabled dokku core enter plugin
|
|
git 0.30.0 enabled dokku core git plugin
|
|
logs 0.30.0 enabled dokku core logs plugin
|
|
network 0.30.0 enabled dokku core network plugin
|
|
nginx-vhosts 0.30.0 enabled dokku core nginx-vhosts plugin
|
|
plugin 0.30.0 enabled dokku core plugin plugin
|
|
proxy 0.30.0 enabled dokku core proxy plugin
|
|
ps 0.30.0 enabled dokku core ps plugin
|
|
repo 0.30.0 enabled dokku core repo plugin
|
|
resource 0.30.0 enabled dokku core resource plugin
|
|
scheduler-docker-local 0.30.0 enabled dokku core scheduler-docker-local plugin
|
|
shell 0.30.0 enabled dokku core shell plugin
|
|
ssh-keys 0.30.0 enabled dokku core ssh-keys plugin
|
|
storage 0.30.0 enabled dokku core storage plugin
|
|
tags 0.30.0 enabled dokku core tags plugin
|
|
tar 0.30.0 enabled dokku core tar plugin
|
|
trace 0.30.0 enabled dokku core trace plugin
|
|
```
|
|
|
|
> Warning: All plugin commands other than `plugin:list` and `plugin:help` require sudo access and must be run directly from the Dokku server.
|
|
|
|
### Checking if a plugin is installed
|
|
|
|
You can check if a plugin has been installed via the `plugin:installed` command:
|
|
|
|
```shell
|
|
dokku plugin:installed postgres
|
|
```
|
|
|
|
### Installing a plugin
|
|
|
|
Installing a plugin is easy as well using the `plugin:install` command. This command will also trigger the `install` pluginhook on all existing plugins.
|
|
|
|
The most common usage is to install a plugin from a url. This url may be any of the following:
|
|
|
|
- `git`: For git+ssh based plugin repository clones.
|
|
- `ssh`: For git+ssh based plugin repository clones.
|
|
- `file`: For copying plugins from a path on disk.
|
|
- `https`: For http based plugin repository clones.
|
|
|
|
Additionally, any urls with the extensions `.tar.gz` or `.tgz` are treated as Gzipped Tarballs for installation purposes and will be downloaded and extracted into place.
|
|
|
|
```shell
|
|
dokku plugin:install https://github.com/dokku/dokku-postgres.git
|
|
```
|
|
|
|
```
|
|
-----> Cloning plugin repo https://github.com/dokku/dokku-postgres.git to /var/lib/dokku/plugins/available/postgres
|
|
Cloning into 'postgres'...
|
|
remote: Counting objects: 646, done.
|
|
remote: Total 646 (delta 0), reused 0 (delta 0), pack-reused 646
|
|
Receiving objects: 100% (646/646), 134.24 KiB | 0 bytes/s, done.
|
|
Resolving deltas: 100% (406/406), done.
|
|
Checking connectivity... done.
|
|
-----> Plugin postgres enabled
|
|
```
|
|
|
|
For git-based plugin installation, a commit SHA-like object may be specified (tag/branch/commit sha) via the `--committish` argument and Dokku will attempt to install the specified commit object.
|
|
|
|
```shell
|
|
# where 2.0.0 is a potential git tag
|
|
dokku plugin:install https://github.com/dokku/dokku-postgres.git --committish 2.0.0
|
|
```
|
|
|
|
Plugin names are interpolated based on the repository name minus the `dokku-` prefix. If the plugin being installed has a name other than what matches the repository name - or another name is desired - the `--name` flag can be used to override this interpolation.
|
|
|
|
```shell
|
|
dokku plugin:install https://github.com/dokku/smoke-test-plugin.git --name smoke-test-plugin
|
|
```
|
|
|
|
The `--core` flag may also be indicated as the sole argument, though it is only for installation of core plugins, and thus not useful for end-user installations.
|
|
|
|
```shell
|
|
dokku plugin:install --core
|
|
```
|
|
|
|
Finally, all flags may be omitted to trigger the `install` procedures for both core and third-party plugins:
|
|
|
|
```shell
|
|
dokku plugin:install
|
|
```
|
|
|
|
### Installing plugin dependencies
|
|
|
|
In some cases, plugins will have system-level dependencies. These are not automatically installed via `plugin:install`, and must be separately via the `plugin:install-dependencies` command. This will run through all the `dependencies` trigger for all plugins.
|
|
|
|
```shell
|
|
dokku plugin:install-dependencies
|
|
```
|
|
|
|
This command may also target _just_ core plugins via the `--core` flag. This is usually only useful for source-based installs of Dokku.
|
|
|
|
```shell
|
|
dokku plugin:install-dependencies --core
|
|
```
|
|
|
|
### Updating a plugin
|
|
|
|
An installed, third-party plugin can be updated can updated via the `plugin:update` command. This should be done after any upgrades of Dokku as there may be changes in the internal api that require an update of how the plugin interfaces with Dokku.
|
|
|
|
Please note that this command is only valid for plugin installs that were backed by a git-repository.
|
|
|
|
```shell
|
|
dokku plugin:update postgres
|
|
```
|
|
|
|
```
|
|
Plugin (postgres) updated
|
|
```
|
|
|
|
An optional commit SHA-like object may be specified.
|
|
|
|
```shell
|
|
dokku plugin:update postgres 2.0.0
|
|
```
|
|
|
|
### Uninstalling a plugin
|
|
|
|
Third party plugins can be uninstalled using the `plugin:uninstall` command:
|
|
|
|
```shell
|
|
dokku plugin:uninstall postgres
|
|
```
|
|
|
|
```
|
|
-----> Plugin postgres uninstalled
|
|
```
|
|
|
|
### Disabling a plugin
|
|
|
|
Disabling a plugin can also be useful for debugging whether a third-party plugin is causing issues in a Dokku installation. Another common use case is for disabling core functionality for replacement with a third-party plugin.
|
|
|
|
```shell
|
|
dokku plugin:disable postgres
|
|
```
|
|
|
|
```
|
|
-----> Plugin postgres disabled
|
|
```
|
|
|
|
### Enabling a plugin
|
|
|
|
Disabled plugins can be re-enabled via the `plugin:enable` command.
|
|
|
|
```shell
|
|
dokku plugin:enable postgres
|
|
```
|
|
|
|
```
|
|
-----> Plugin postgres enabled
|
|
```
|
|
|
|
### Triggering a plugin trigger
|
|
|
|
The `plugin:trigger` can be used to call any internal plugin trigger. This may have unintended consequences, and thus should only be called for development or debugging purposes.
|
|
|
|
```shell
|
|
dokku plugin:trigger some-internal-trigger args-go-here
|
|
```
|