plugin-rewritebody icon indicating copy to clipboard operation
plugin-rewritebody copied to clipboard

Plugin silently fails to apply rewrites for some containers

Open IntermittentlyRupert opened this issue 5 years ago • 3 comments

This may be a duplicate of #13, but I'm not seeing the panic logs described in that issue. As with #13 I'm using CLI static config and Docker tag dynamic config.

Of the containers I've tried, these have rewrites applied correctly:

  • portainer/portainer
  • plexinc/pms-docker
  • linuxserver/jackett
  • linuxserver/deluge
  • linuxserver/nzbhydra2

and these silently fail:

  • linuxserver/sonarr
  • linuxserver/radarr
  • linuxserver/sabnzbd

Here's a minimal docker-compose.yaml where portainer will have the theme.park stylesheet injected into responses and sonarr will not:

version: "3"
services:
  traefik:
    image: traefik:2.3.4
    ports:
      - 80:80
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock:ro
    command:
      - --log.level=DEBUG
      - --accesslog=true
      - --providers.docker=true
      - --pilot.token=${TOKEN}
      - --experimental.plugins.rewrite.modulename=github.com/traefik/plugin-rewritebody
      - --experimental.plugins.rewrite.version=v0.3.1
  portainer:
    image: portainer/portainer
    labels:
      - traefik.http.routers.portainer.rule=Host(`portainer.localhost`)
      - traefik.http.routers.portainer.middlewares=portainer
      - traefik.http.middlewares.portainer.plugin.rewrite.rewrites.regex=</head>
      - traefik.http.middlewares.portainer.plugin.rewrite.rewrites.replacement=<link rel="stylesheet" type="text/css" href="https://gilbn.github.io/theme.park/CSS/themes/portainer/plex.css"></head>
  sonarr:
    image: linuxserver/sonarr
    labels:
      - traefik.http.routers.sonarr.rule=Host(`sonarr.localhost`)
      - traefik.http.routers.sonarr.middlewares=sonarr
      - traefik.http.middlewares.sonarr.plugin.rewrite.rewrites.regex=</head>
      - traefik.http.middlewares.sonarr.plugin.rewrite.rewrites.replacement=<link rel="stylesheet" type="text/css" href="https://gilbn.github.io/theme.park/CSS/themes/sonarr/plex.css"></head>

Here are the associated debug logs from creating the containers then loading the landing page of each service:

  • Portainer: https://gist.github.com/IntermittentlyRupert/816c90222ee5dc3bcd4bbf15cbf851e2
  • Sonarr: https://gist.github.com/IntermittentlyRupert/5def9f054a55f7961e716c815b2613ec

IntermittentlyRupert avatar Nov 28 '20 04:11 IntermittentlyRupert

I am facing a similar issue with a private container. It doesnt panic, just silently doesnt apply the regex replace :(

mannharleen avatar Jan 19 '22 05:01 mannharleen

The issue can be caused by gzip compression on the backend container.

benjamin-feron avatar Nov 16 '22 00:11 benjamin-feron

This fork supports gzip compression on backends :

https://github.com/packruler/rewrite-body

benjamin-feron avatar Nov 16 '22 00:11 benjamin-feron