Skip to content

Example 3: Service-Level Docker Compose ​

When individual microservices require custom regex rules, sensitive directory exceptions, query inspection, or dedicated error payloads, configure RouteWarden at the service router level.


Configuration Preview ​

# dynamic_conf.ymlhttp:  middlewares:    service-warden:      plugin:        routewarden:          enabled: true          enableDefaultPatterns: true          checkQuery: true          pathPatterns:            - '(?i)^/admin(/.*)?$'            - '(?i)^/api/internal(/.*)?$'          allowPatterns:            - '(?i)^/robots\.txt$'            - '(?i)^/\.well-known(/.*)?$'          allowedIps:            - "192.168.1.0/24"            - "10.10.0.0/16"          response:            mode: json            statusCode: 403            body: '{"error":"access_denied","service":"web"}'            headers:              X-Protected-By: "RouteWarden"  routers:    web-router:      rule: "Host(`example.com`)"      entryPoints:        - web      middlewares:        - service-warden      service: web-service

Docker Compose Example ​

services:  web:    image: my-web-app:latest    labels:      - "traefik.enable=true"      - "traefik.http.routers.web.rule=Host(`example.com`)"      - "traefik.http.routers.web.entrypoints=web"      - "traefik.http.routers.web.middlewares=service-warden"      - "traefik.http.middlewares.service-warden.plugin.routewarden.enabled=true"      - "traefik.http.middlewares.service-warden.plugin.routewarden.enableDefaultPatterns=true"      - "traefik.http.middlewares.service-warden.plugin.routewarden.checkQuery=true"      - "traefik.http.middlewares.service-warden.plugin.routewarden.pathPatterns=(?i)^/admin(/.*)?$,(?i)^/api/internal(/.*)?$"      - "traefik.http.middlewares.service-warden.plugin.routewarden.allowPatterns=(?i)^/robots\\.txt$,(?i)^/\\.well-known(/.*)?$"      - "traefik.http.middlewares.service-warden.plugin.routewarden.allowedIps=192.168.1.0/24,10.10.0.0/16"      - "traefik.http.middlewares.service-warden.plugin.routewarden.response.mode=json"      - "traefik.http.middlewares.service-warden.plugin.routewarden.response.statusCode=403"      - "traefik.http.middlewares.service-warden.plugin.routewarden.response.headers.X-Protected-By=RouteWarden"

Released under the MIT License.