diff --git a/.traefik.yml b/.traefik.yml index 8f5f209..527bb1b 100644 --- a/.traefik.yml +++ b/.traefik.yml @@ -10,5 +10,5 @@ testData: crowdsec: bouncer: enabled: true - CrowdsecLapiKey: 40796d93c2958f9e58345514e67740e5 + crowdsecLapiKey: 40796d93c2958f9e58345514e67740e5 diff --git a/README.md b/README.md index 46d025f..e332f04 100644 --- a/README.md +++ b/README.md @@ -75,6 +75,13 @@ The source code of the plugin should be organized as follows: ├── readme.md └── vendor/* ``` + +For local developpement a docker-compose-local.yml is provided and reproduce the directory layout needed by traefik. + +```bash +docker-compose -f docker-compose-local.yml up -d +``` + ### About [maxlerebourg](https://github.com/maxlerebourg) and [I](https://github.com/mhanotaux) have been using traefik since 2020. diff --git a/docker-compose-local.yml b/docker-compose-local.yml new file mode 100644 index 0000000..a5c2a9f --- /dev/null +++ b/docker-compose-local.yml @@ -0,0 +1,56 @@ +version: "3.8" + +services: + traefik: + image: "traefik:v2.8.7" + container_name: "traefik" + command: + # - "--log.level=DEBUG" + - "--accesslog" + - "--accesslog.filepath=/var/log/traefik/traefik.log" + - "--api.insecure=true" + - "--providers.docker=true" + - "--providers.docker.exposedbydefault=false" + - "--entrypoints.web.address=:80" + - "--experimental.localplugins.bouncer.modulename=github.com/maxlerebourg/crowdsec-bouncer-traefik-plugin" + volumes: + - "/var/run/docker.sock:/var/run/docker.sock:ro" + - "logs:/var/log/traefik" + - ./:/plugins-local/src/github.com/maxlerebourg/crowdsec-bouncer-traefik-plugin + ports: + - 8000:80 + - 8080:8080 + + whoami: + image: traefik/whoami + container_name: "simple-service" + labels: + - "traefik.enable=true" + - "traefik.http.routers.whoami.rule=Host(`localhost`)" + - "traefik.http.routers.whoami.entrypoints=web" + - "traefik.http.routers.whoami.middlewares=crowdsec@docker" + - "traefik.http.middlewares.crowdsec.plugin.bouncer.enabled=true" + - "traefik.http.middlewares.crowdsec.plugin.bouncer.crowdseclapikey=40796d93c2958f9e58345514e67740e5" + + crowdsec: + image: crowdsecurity/crowdsec:v1.4.1 + container_name: "crowdsec" + command: rm -rf /etc/crowdsec/acquis.yaml + environment: + COLLECTIONS: crowdsecurity/traefik + CUSTOM_HOSTNAME: crowdsec + BOUNCER_KEY_TRAEFIK: 40796d93c2958f9e58345514e67740e5 + depends_on: + - 'traefik' + volumes: + - ./acquis.yaml:/etc/crowdsec/acquis.yaml:ro + - logs:/var/log/traefik:ro + - crowdsec-db:/var/lib/crowdsec/data/ + - crowdsec-config:/etc/crowdsec/ + ports: + - "8083:8080" + +volumes: + logs: + crowdsec-db: + crowdsec-config: \ No newline at end of file diff --git a/docker-compose.yml b/docker-compose.yml index 434758d..39aa3d5 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -2,7 +2,7 @@ version: "3.8" services: traefik: - image: "traefik:v2.8.5" + image: "traefik:v2.8.7" container_name: "traefik" command: # - "--log.level=DEBUG" @@ -12,12 +12,10 @@ services: - "--providers.docker=true" - "--providers.docker.exposedbydefault=false" - "--entrypoints.web.address=:80" - - "--experimental.localplugins.bouncer.modulename=github.com/maxlerebourg/crowdsec-bouncer-traefik-plugin" volumes: - "/var/run/docker.sock:/var/run/docker.sock:ro" - "logs:/var/log/traefik" - - ./:/plugins-local/src/github.com/maxlerebourg/crowdsec-bouncer-traefik-plugin ports: - 8000:80 - 8080:8080 @@ -45,7 +43,7 @@ services: - 'traefik' volumes: - ./acquis.yaml:/etc/crowdsec/acquis.yaml:ro - - logs:/var/log/traefik + - logs:/var/log/traefik:ro - crowdsec-db:/var/lib/crowdsec/data/ - crowdsec-config:/etc/crowdsec/ ports: