Skip to content
This repository has been archived by the owner on Jul 30, 2021. It is now read-only.

PrivPlugMatt/traefik-private-plugins

Repository files navigation

Traefik private plugin support

GitHub Workflow Status Docker Image Version (tag latest semver) Docker Image Version (tag latest semver)

Overview

Traefik authors do not see the need to add support for private plugins, forcing to use Traefik Pilot.

They have already rejected several pull requests with different implementations of private plugins (#7725, #7515) and explained their position in detail (comment)

This project adds support for private plugins.

Technical details

Traefik is a big project and maintaining a fork that will contain all the latest updates is too complicated.

I decided to put the support of private plugins into a small patch, which will automatically (using Github Actions) apply to the actual Traefik sources and send the compiled containers to Docker Hub

docker run -p 80:80 -v $PWD/private-plugins-storage:/private-plugins-storage pagran/traefik:v2.4.0

Usage

To activate the private plugin, you must specify private in the version field and place unpacked plugin into ./private-plugins-storage/src folder.

For example plugindemo:

experimental:
  plugins:
    plugindemo:
      moduleName: plugindemo
      version: private
private-plugins-storage/
└── src
    └── plugindemo
        ├── demo.go
        ├── demo_test.go
        ├── .gitignore
        ├── .golangci.toml
        ├── go.mod
        ├── LICENSE
        ├── Makefile
        ├── readme.md
        └── .traefik.yml