examples/docker-compose.yaml
version: "3.8"
services:
traefik:
image: traefik:v2.5
container_name: "traefik-example"
command:
# - "--log.level=DEBUG"
- "--api.insecure=true"
- "--providers.docker=true"
- "--providers.docker.exposedbydefault=false"
- "--entrypoints.web.address=:80"
ports:
- "80:80"
volumes:
- "/var/run/docker.sock:/var/run/docker.sock:ro"
whoami:
image: traefik/whoami:latest
container_name: "simple-service-example"
labels:
# Create bouncer middleware
- "traefik.http.middlewares.crowdsec-bouncer.forwardauth.address=http://bouncer:8080/api/v1/forwardAuth"
# Traefik routing to this service
- "traefik.enable=true"
- "traefik.http.routers.whoami.rule=Host(`localhost`)"
- "traefik.http.routers.whoami.entrypoints=web"
- "traefik.http.routers.whoami.middlewares=crowdsec-bouncer@docker"
crowdsec:
image: crowdsecurity/crowdsec:v1.2.0
container_name: "crowdsec-example"
environment:
COLLECTIONS: "crowdsecurity/nginx"
GID: "${GID-1000}"
depends_on:
- 'traefik'
volumes:
- crowdsec-db-example:/var/lib/crowdsec/data/
- crowdsec-config-example:/etc/crowdsec/
bouncer:
image: fbonalair/traefik-crowdsec-bouncer:0.1.1
container_name: "bouncer-example"
environment:
CROWDSEC_BOUNCER_API_KEY: MyApiKey
CROWDSEC_AGENT_HOST: crowdsec:8080
volumes:
logs-example:
crowdsec-db-example:
crowdsec-config-example: