mirror of
https://github.com/dokku/dokku.git
synced 2026-09-02 04:00:22 +02:00
# History ## 0.38.26 Install/update via the bootstrap script: ```shell wget -NP . https://dokku.com/install/v0.38.26/bootstrap.sh sudo DOKKU_TAG=v0.38.26 bash bootstrap.sh ``` ### Bug Fixes - #8906: @josegonzalez Match docker options by shell word when removing ### New Features - #8911: @josegonzalez Route wildcard domains through traefik on k3s - #8909: @josegonzalez Support manually managed cert issuers on k3s - #8903: @josegonzalez Support kernel sysctls on the k3s scheduler - #8856: @youdie006 Add pre-parsed port_mappings to ports:report json ### Refactors - #8863: @josegonzalez Move host-crontab generation into cron plugin ### Documentation - #8908: @josegonzalez Document --global on scheduler-k3s report and set - #8858: @bakatz Added instructions for restoring backups on different CPU architectures. ### Tests - #8893: @dependabot[bot] chore(deps): bump django from 5.2.16 to 5.2.17 in /tests/apps/dockerfile-release - #8891: @dependabot[bot] chore(deps-dev): bump heroku/heroku-buildpack-php from 293 to 294 in /tests/apps/php - #8877: @dependabot[bot] chore(deps): bump google.golang.org/grpc from 1.82.1 to 1.83.0 in /tests/apps/gogrpc - #8874: @dependabot[bot] chore(deps): bump sass from 1.101.7 to 1.102.0 in /tests/apps/multi - #8870: @dependabot[bot] chore(deps): bump sass from 1.101.6 to 1.101.7 in /tests/apps/multi - #8866: @dependabot[bot] chore(deps): bump sass from 1.101.3 to 1.101.6 in /tests/apps/multi - #8860: @dependabot[bot] chore(deps): bump setuptools from 78.1.1 to 83.0.0 in /tests/apps/dockerfile-release - #8859: @dependabot[bot] chore(deps): bump immutable from 5.1.5 to 5.1.9 in /tests/apps/multi - #8855: @dependabot[bot] chore(deps): bump sass from 1.101.0 to 1.101.3 in /tests/apps/multi - #8857: @dependabot[bot] chore(deps): bump body-parser from 2.2.1 to 2.3.0 in /tests/apps/checks-root - #8853: @dependabot[bot] chore(deps): bump python from 3.15.0b3-bookworm to 3.15.0b4-bookworm in /tests/apps/dockerfile-release ### Dependencies - #8905: @dependabot[bot] chore(deps): bump oras.land/oras-go/v2 from 2.6.1 to 2.6.2 in /plugins/scheduler-k3s - #8869: @dependabot[bot] chore(deps): bump github.com/mattn/go-isatty from 0.0.23 to 0.0.24 in /plugins/app-json - #8887: @dependabot[bot] chore(deps): bump github.com/kedacore/keda/v2 from 2.20.1 to 2.20.2 in /plugins/scheduler-k3s - #8883: @dokku-bot chore: bump docker-container-healthchecker to 0.16.0 - #8886: @dependabot[bot] chore(deps): update markdown requirement from <3.11,>=3.10.2 to >=3.10.3,<3.11 in /docs/_build - #8892: @dependabot[bot] chore(deps): bump traefik from v3.7.9 to v3.7.10 in /plugins/traefik-vhosts - #8885: @dokku-bot chore: bump dokku-update to 0.10.0 - #8884: @dokku-bot chore: bump procfile-util to 0.20.8 - #8882: @dokku-bot chore: bump docker-image-labeler to 0.10.0 - #8888: @dependabot[bot] chore(deps): bump github.com/traefik/traefik/v2 from 2.11.53 to 2.11.54 in /plugins/scheduler-k3s - #8900: @dokku-bot chore: bump gliderlabs-sigil to 0.12.1 - #8899: @dokku-bot chore: bump herokuish to 0.11.14 - #8898: @dokku-bot chore: bump netrc to 0.11.1 - #8897: @dokku-bot chore: bump dokku-event-listener to 0.20.1 - #8896: @dokku-bot chore: bump sshcommand to 0.20.2 - #8895: @dokku-bot chore: bump lambda-builder to 0.9.4 - #8894: @dokku-bot chore: bump plugn to 0.17.1 - #8876: @dependabot[bot] chore(deps): bump github.com/cert-manager/cert-manager from 1.21.0 to 1.21.1 in /plugins/scheduler-k3s - #8873: @dependabot[bot] chore(deps): bump traefik from v3.7.8 to v3.7.9 in /plugins/traefik-vhosts - #8872: @dependabot[bot] chore(deps): bump github.com/traefik/traefik/v2 from 2.11.52 to 2.11.53 in /plugins/scheduler-k3s - #8871: @dependabot[bot] chore(deps): bump k8s.io/kubernetes from 1.36.2 to 1.36.3 in /plugins/scheduler-k3s - #8868: @dependabot[bot] chore(deps): bump k8s.io/kubectl from 0.36.2 to 0.36.3 in /plugins/scheduler-k3s - #8867: @dependabot[bot] chore(deps): bump k8s.io/client-go from 0.36.2 to 0.36.3 in /plugins/scheduler-k3s - #8865: @dependabot[bot] chore(deps): bump github.com/fluxcd/pkg/kustomize from 1.38.0 to 1.39.0 in /plugins/scheduler-k3s - #8864: @dependabot[bot] chore(deps): bump soupsieve from 2.9 to 2.9.1 in /docs/_build - #8854: @dependabot[bot] chore(deps): bump python from 3.15.0b3-alpine to 3.15.0b4-alpine in /docs/_build - #8852: @dependabot[bot] chore(deps): bump soupsieve from 2.8.4 to 2.9 in /docs/_build - #8851: @dependabot[bot] chore(deps): bump mkdocs-material from 9.7.6 to 9.7.7 in /docs/_build - #8850: @dependabot[bot] chore(deps): bump actions/setup-python from 6 to 7 ### Other - #8907: @josegonzalez fix: migrate env files before reading deprecated vars - #8881: @josegonzalez Ignore minor and patch updates for github actions
259 lines
10 KiB
Markdown
259 lines
10 KiB
Markdown
# Plugin Management
|
|
|
|
> [!IMPORTANT]
|
|
> 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 branch|commit|tag] [--name custom-plugin-name] [--skip-install-trigger] # Optionally download git-url (and pin to the specified branch/commit/tag) & 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 [--format stdout|json] # Print active plugins
|
|
plugin:trigger <args...>. # Trigger an arbitrary plugin hook
|
|
plugin:uninstall <name> # Uninstall a plugin (third-party only)
|
|
plugin:update [name [branch|commit|tag]] # Optionally update named plugin from git (and pin to the specified branch/commit/tag) & 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.38.26 enabled dokku core standard plugin
|
|
20_events 0.38.26 enabled dokku core events logging plugin
|
|
app-json 0.38.26 enabled dokku core app-json plugin
|
|
apps 0.38.26 enabled dokku core apps plugin
|
|
build-env 0.38.26 enabled dokku core build-env plugin
|
|
buildpacks 0.38.26 enabled dokku core buildpacks plugin
|
|
certs 0.38.26 enabled dokku core certificate management plugin
|
|
checks 0.38.26 enabled dokku core checks plugin
|
|
common 0.38.26 enabled dokku core common plugin
|
|
config 0.38.26 enabled dokku core config plugin
|
|
docker-options 0.38.26 enabled dokku core docker-options plugin
|
|
domains 0.38.26 enabled dokku core domains plugin
|
|
enter 0.38.26 enabled dokku core enter plugin
|
|
git 0.38.26 enabled dokku core git plugin
|
|
logs 0.38.26 enabled dokku core logs plugin
|
|
network 0.38.26 enabled dokku core network plugin
|
|
nginx-vhosts 0.38.26 enabled dokku core nginx-vhosts plugin
|
|
plugin 0.38.26 enabled dokku core plugin plugin
|
|
proxy 0.38.26 enabled dokku core proxy plugin
|
|
ps 0.38.26 enabled dokku core ps plugin
|
|
repo 0.38.26 enabled dokku core repo plugin
|
|
resource 0.38.26 enabled dokku core resource plugin
|
|
scheduler-docker-local 0.38.26 enabled dokku core scheduler-docker-local plugin
|
|
shell 0.38.26 enabled dokku core shell plugin
|
|
ssh-keys 0.38.26 enabled dokku core ssh-keys plugin
|
|
storage 0.38.26 enabled dokku core storage plugin
|
|
tags 0.38.26 enabled dokku core tags plugin
|
|
tar 0.38.26 enabled dokku core tar plugin
|
|
trace 0.38.26 enabled dokku core trace plugin
|
|
```
|
|
|
|
The list can also be emitted as JSON via the `--format json` flag. In addition to the name, version, enabled state, and description shown in the default output, the JSON output includes whether a plugin is a core plugin and - for git-based third-party plugins - the install source (the git remote URL, the currently checked-out commit, and the followed branch). This is useful for tooling that reconstructs a server's set of installed plugins:
|
|
|
|
```shell
|
|
dokku plugin:list --format json
|
|
```
|
|
|
|
```json
|
|
[
|
|
{
|
|
"name": "apps",
|
|
"version": "0.38.26",
|
|
"enabled": true,
|
|
"core": true,
|
|
"description": "dokku core apps plugin",
|
|
"source_url": "",
|
|
"committish": "",
|
|
"branch": ""
|
|
},
|
|
{
|
|
"name": "postgres",
|
|
"version": "1.42.0",
|
|
"enabled": true,
|
|
"core": false,
|
|
"description": "dokku postgres service plugin",
|
|
"source_url": "https://github.com/dokku/dokku-postgres.git",
|
|
"committish": "a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0",
|
|
"branch": "master"
|
|
}
|
|
]
|
|
```
|
|
|
|
The `source_url`, `committish`, and `branch` fields are only populated for plugins installed from a git repository. They are empty for core plugins as well as for plugins installed from a tarball or a local `file://` path. When a plugin is pinned to a specific commit or tag (a detached checkout), the `branch` field is empty while `committish` still reports the exact commit.
|
|
|
|
> [!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
|
|
|
|
> [!NOTE]
|
|
> Plugins installed in this method within a [docker-based installation](/docs/getting-started/install/docker.md) of Dokku do not persist across installs. Please see the [plugin installation section](/docs/getting-started/install/docker.md#plugin-installation) of the docker-based installation docs for further details.
|
|
|
|
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
|
|
```
|
|
|
|
If installing plugins in a Dockerfile, you will want to skip the `install` trigger. This will be run on container boot.
|
|
|
|
```shell
|
|
dokku plugin:install https://github.com/dokku/smoke-test-plugin.git --name smoke-test-plugin --skip-install-trigger
|
|
```
|
|
|
|
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
|
|
```
|
|
|
|
Any future invocation of `plugin:update` will respect the previously specified SHA-like object. To follow a particular branch again, specify that branch:
|
|
|
|
```shell
|
|
dokku plugin:update postgres main
|
|
```
|
|
|
|
### 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
|
|
```
|