mirror of
https://github.com/maxlerebourg/crowdsec-bouncer-traefik-plugin.git
synced 2026-07-21 03:28:59 +02:00
117 lines
4.4 KiB
YAML
117 lines
4.4 KiB
YAML
version: "3.8"
|
|
|
|
services:
|
|
traefik:
|
|
image: "traefik:v2.9.8"
|
|
container_name: "traefik"
|
|
restart: unless-stopped
|
|
command:
|
|
# - "--log.level=DEBUG"
|
|
- "--accesslog"
|
|
- "--accesslog.filepath=/var/log/traefik/access.log"
|
|
- "--api.insecure=true"
|
|
- "--providers.docker=true"
|
|
- "--providers.docker.exposedbydefault=false"
|
|
- "--entrypoints.web.address=:80"
|
|
|
|
- "--experimental.plugins.bouncer.modulename=github.com/maxlerebourg/crowdsec-bouncer-traefik-plugin"
|
|
- "--experimental.plugins.bouncer.version=v1.1.11-beta2"
|
|
# - "--experimental.localplugins.bouncer.modulename=github.com/maxlerebourg/crowdsec-bouncer-traefik-plugin"
|
|
volumes:
|
|
- /var/run/docker.sock:/var/run/docker.sock:ro
|
|
- logs-redis:/var/log/traefik
|
|
# - ./../../:/plugins-local/src/github.com/maxlerebourg/crowdsec-bouncer-traefik-plugin
|
|
ports:
|
|
- 80:80
|
|
- 8080:8080
|
|
depends_on:
|
|
- crowdsec
|
|
- redis-insecure
|
|
- redis-secure
|
|
|
|
whoami-redis-insecure:
|
|
image: traefik/whoami
|
|
container_name: "simple-service-foo"
|
|
restart: unless-stopped
|
|
labels:
|
|
- "traefik.enable=true"
|
|
# Definition of the router
|
|
- "traefik.http.routers.router-foo.rule=Path(`/redis-insecure`)"
|
|
- "traefik.http.routers.router-foo.entrypoints=web"
|
|
- "traefik.http.routers.router-foo.middlewares=crowdsec-foo@docker"
|
|
# Definition of the service
|
|
- "traefik.http.services.service-foo.loadbalancer.server.port=80"
|
|
# Definition of the middleware
|
|
- "traefik.http.middlewares.crowdsec-foo.plugin.bouncer.enabled=true"
|
|
# crowdseclapikey must be uniq to the middleware attached to the service
|
|
- "traefik.http.middlewares.crowdsec-foo.plugin.bouncer.crowdseclapikey=40796d93c2958f9e58345514e67740e5"
|
|
- "traefik.http.middlewares.crowdsec-foo.plugin.bouncer.rediscacheenabled=true"
|
|
# Contact redis-unsecure without a password
|
|
- "traefik.http.middlewares.crowdsec-foo.plugin.bouncer.redisCacheHost=redis-insecure:6379"
|
|
- "traefik.http.middlewares.crowdsec-foo.plugin.bouncer.loglevel=DEBUG"
|
|
|
|
whoami-redis-secure:
|
|
image: traefik/whoami
|
|
container_name: "simple-service-bar"
|
|
restart: unless-stopped
|
|
labels:
|
|
- "traefik.enable=true"
|
|
# Definition of the router
|
|
- "traefik.http.routers.router-bar.rule=Path(`/redis-secure`)"
|
|
- "traefik.http.routers.router-bar.entrypoints=web"
|
|
- "traefik.http.routers.router-bar.middlewares=crowdsec-bar@docker"
|
|
# Definition of the service
|
|
- "traefik.http.services.service-bar.loadbalancer.server.port=80"
|
|
# Definition of the middleware
|
|
- "traefik.http.middlewares.crowdsec-bar.plugin.bouncer.enabled=true"
|
|
# crowdseclapikey must be uniq to the middleware attached to the service
|
|
- "traefik.http.middlewares.crowdsec-bar.plugin.bouncer.crowdseclapikey=44c36dac5c4140af9f06f397508e82c7"
|
|
- "traefik.http.middlewares.crowdsec-bar.plugin.bouncer.rediscacheenabled=true"
|
|
- "traefik.http.middlewares.crowdsec-bar.plugin.bouncer.redisCachePassword=FIXME"
|
|
# Contact redis-secure with password
|
|
- "traefik.http.middlewares.crowdsec-bar.plugin.bouncer.redisCacheHost=redis-secure:6379"
|
|
- "traefik.http.middlewares.crowdsec-bar.plugin.bouncer.loglevel=DEBUG"
|
|
|
|
|
|
crowdsec:
|
|
image: crowdsecurity/crowdsec:v1.4.6
|
|
container_name: "crowdsec"
|
|
restart: unless-stopped
|
|
environment:
|
|
COLLECTIONS: crowdsecurity/traefik
|
|
CUSTOM_HOSTNAME: crowdsec
|
|
BOUNCER_KEY_TRAEFIK_DEV_1: 40796d93c2958f9e58345514e67740e5
|
|
BOUNCER_KEY_TRAEFIK_DEV_2: 44c36dac5c4140af9f06f397508e82c7
|
|
volumes:
|
|
- ./acquis.yaml:/etc/crowdsec/acquis.yaml:ro
|
|
- logs-redis:/var/log/traefik:ro
|
|
- crowdsec-db-redis:/var/lib/crowdsec/data/
|
|
- crowdsec-config-redis:/etc/crowdsec/
|
|
labels:
|
|
- "traefik.enable=false"
|
|
|
|
redis-secure:
|
|
image: "redis:7.0.9-alpine"
|
|
container_name: "redis-secure"
|
|
hostname: redis-secure
|
|
restart: unless-stopped
|
|
command: "redis-server --save 60 1 --loglevel debug --requirepass FIXME"
|
|
volumes:
|
|
- redis-secure-data:/data
|
|
|
|
redis-insecure:
|
|
image: "redis:7.0.9-alpine"
|
|
container_name: "redis-insecure"
|
|
hostname: redis-unsecure
|
|
restart: unless-stopped
|
|
command: "redis-server --save 60 1 --loglevel debug"
|
|
volumes:
|
|
- redis-unsecure-data:/data
|
|
|
|
volumes:
|
|
logs-redis:
|
|
crowdsec-db-redis:
|
|
crowdsec-config-redis:
|
|
redis-unsecure-data:
|
|
redis-secure-data:
|