version: "3.8" services: traefik: image: "traefik:v2.8.8" container_name: "traefik" 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.0.9" - "--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 networks: - redis - services depends_on: - crowdsec - redis whoami1: image: traefik/whoami container_name: "simple-service1" labels: - "traefik.enable=true" # Definition of the router - "traefik.http.routers.router1.rule=Path(`/foo`)" - "traefik.http.routers.router1.entrypoints=web" - "traefik.http.routers.router1.middlewares=crowdsec1@docker" # Definition of the service - "traefik.http.services.service1.loadbalancer.server.port=80" # Definitin of the middleware - "traefik.http.middlewares.crowdsec1.plugin.bouncer.enabled=true" # crowdseclapikey must be uniq to the middleware attached to the service - "traefik.http.middlewares.crowdsec1.plugin.bouncer.crowdseclapikey=40796d93c2958f9e58345514e67740e5" - "traefik.http.middlewares.crowdsec1.plugin.bouncer.crowdsecmode=live" networks: - services whoami2: image: traefik/whoami container_name: "simple-service2" labels: - "traefik.enable=true" # Definition of the router - "traefik.http.routers.router2.rule=Path(`/bar`)" - "traefik.http.routers.router2.entrypoints=web" - "traefik.http.routers.router2.middlewares=crowdsec1@docker" # Definition of the service - "traefik.http.services.service2.loadbalancer.server.port=80" # Definitin of the middleware - "traefik.http.middlewares.crowdsec2.plugin.bouncer.enabled=true" # crowdseclapikey must be uniq to the middleware attached to the service - "traefik.http.middlewares.crowdsec2.plugin.bouncer.crowdseclapikey=44c36dac5c4140af9f06f397508e82c7" - "traefik.http.middlewares.crowdsec2.plugin.bouncer.crowdsecmode=live" networks: - services crowdsec: image: crowdsecurity/crowdsec:v1.4.1 container_name: "crowdsec" 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: image: "redis:7.0.5" container_name: "redis" command: "redis-server --save 60 1" volumes: - redis-data:/data networks: - redis volumes: logs-redis: crowdsec-db-redis: crowdsec-config-redis: redis-data: networks: redis: services: