mirror of
https://github.com/maxlerebourg/crowdsec-bouncer-traefik-plugin.git
synced 2026-07-21 11:38:59 +02:00
75 lines
2.1 KiB
Markdown
75 lines
2.1 KiB
Markdown
[](https://github.com/maxlerebourg/crowdsec-bouncer-traefik-plugin/actions)
|
|
|
|
# Crowdsec Bouncer Traefik plugin
|
|
|
|
This plugins aims to implement a Crowdsec Bouncer into a traefik plugin
|
|
|
|
## Usage
|
|
|
|
|
|
### Configuration
|
|
|
|
For each plugin, the Traefik static configuration must define the module name (as is usual for Go packages).
|
|
|
|
The following declaration (given here in YAML) defines a plugin:
|
|
|
|
```yaml
|
|
# Static configuration
|
|
|
|
experimental:
|
|
localPlugins:
|
|
bouncer:
|
|
moduleName: github.com/maxlerebourg/crowdsec-bouncer-traefik-plugin
|
|
```
|
|
|
|
```yaml
|
|
# Dynamic configuration
|
|
|
|
http:
|
|
routers:
|
|
my-router:
|
|
rule: host(`woami.localhost`)
|
|
service: service-foo
|
|
entryPoints:
|
|
- web
|
|
middlewares:
|
|
- my-plugin
|
|
|
|
services:
|
|
service-foo:
|
|
loadBalancer:
|
|
servers:
|
|
- url: http://127.0.0.1:5000
|
|
|
|
middlewares:
|
|
crowdsec:
|
|
plugin:
|
|
bouncer:
|
|
enabled: true
|
|
crowdseclapikey: 40796d93c2958f9e58345514e67740e5
|
|
```
|
|
|
|
### Local Mode
|
|
|
|
Traefik also offers a developer mode that can be used for temporary testing of plugins not hosted on GitHub.
|
|
To use a plugin in local mode, the Traefik static configuration must define the module name (as is usual for Go packages) and a path to a [Go workspace](https://golang.org/doc/gopath_code.html#Workspaces), which can be the local GOPATH or any directory.
|
|
|
|
The plugins must be placed in `./plugins-local` directory,
|
|
which should be in the working directory of the process running the Traefik binary.
|
|
The source code of the plugin should be organized as follows:
|
|
|
|
```
|
|
./plugins-local/
|
|
└── src
|
|
└── github.com
|
|
└── maxlerebourg
|
|
└── crowdsec-bouncer-traefik-plugin
|
|
├── bouncer.go
|
|
├── bouncer_test.go
|
|
├── go.mod
|
|
├── LICENSE
|
|
├── Makefile
|
|
├── readme.md
|
|
└── vendor/*
|
|
```
|