Skip to content

Traefik Plugins Experimental Configuration

Overview

This guide provides instructions on how to configure and use the new experimental plugins install configuration option in Traefik. The plugins option introduces a system to extend Traefik capabilities with custom middlewares and providers.

Experimental

The plugins option is currently experimental and subject to change in future releases. Use with caution in production environments.

Enabling Plugins

The plugins option is an install configuration parameter. To enable a plugin, you need to define it in your Traefik install configuration

experimental:
  plugins:
    plugin-name: # The name of the plugin in the routing configuration
      moduleName: "github.com/github-organization/github-repository" # The plugin module name
      version: "vX.XX.X" # The version to use
[experimental.plugins.plugin-name]
  moduleName = "github.com/github-organization/github-repository" # The plugin module name
  version = "vX.XX.X" # The version to use
# The plugin module name
# With plugin-name the name of the plugin in the routing configuration
--experimental.plugins.plugin-name.modulename=github.com/github-organization/github-repository
--experimental.plugins.plugin-name.version=vX.XX.X # The version to use

To learn more about how to add a new plugin to a Traefik instance, please refer to the developer documentation.

Plugin Options

Field Description Type Required
moduleName Plugin's module name. string Yes
version Plugin's version. string Yes
hash Plugin's hash to validate. string No
settings Plugin's settings (works only for wasm plugins). object No
settings.envs Environment variables to forward to the wasm guest. []string No
settings.mounts Directory to mount to the wasm guest. []string No
settings.useUnsafe Allow the plugin to use unsafe and syscall packages. bool No

Local Plugins

Local plugins allow you to use plugins from a local directory, without publishing them to the Traefik plugin catalog.

experimental:
  localPlugins:
    plugin-name: # The name of the plugin in the routing configuration
      moduleName: "github.com/github-organization/github-repository" # The plugin module name
[experimental.localPlugins.plugin-name]
  moduleName = "github.com/github-organization/github-repository" # The plugin module name
# The plugin module name
# With plugin-name the name of the plugin in the routing configuration
--experimental.localplugins.plugin-name.modulename=github.com/github-organization/github-repository

Local Plugin Options

Field Description Type Required
moduleName Plugin's module name. string Yes
settings Plugin's settings (works only for wasm plugins). object No
settings.envs Environment variables to forward to the wasm guest. []string No
settings.mounts Directory to mount to the wasm guest. []string No
settings.useUnsafe Allow the plugin to use unsafe and syscall packages. bool No