DocumentServer icon indicating copy to clipboard operation
DocumentServer copied to clipboard

Behind Traefik v2

Open fred-gb opened this issue 2 years ago • 3 comments

Do you want to request a feature or report a bug? Bug

What is the current behavior? Unable to configure traefik v2 with onlyoffice I can reach the welcome page, but when I try example, I get:

502 Bad Gateway
nginx

If the current behavior is a bug, please provide the steps to reproduce and if possible a minimal demo of the problem. My traefik tags:

        "traefik.enable=true",
        "traefik.http.routers.onlyoffice.tls=true",
        "traefik.http.routers.onlyoffice.tls.certresolver=myresolver",
        "traefik.http.routers.onlyoffice.tls.options=mintls12@file",
        "traefik.http.routers.onlyoffice.entrypoints=https",
        "traefik.http.routers.onlyoffice.rule=Host(`office.nextcloud.domain.com`)",

        "traefik.http.middlewares.onlyoffice.redirectscheme.scheme=https",
        "traefik.http.middlewares.onlyoffice.redirectscheme.permanent=true",
        "traefik.http.middlewares.onlyoffice-headers.headers.customResponseHeaders.X-Robots-Tag=none",
        "traefik.http.middlewares.onlyoffice-headers.headers.customResponseHeaders.Strict-Transport-Security=max-age=63072000",
        "traefik.http.middlewares.onlyoffice-headers.headers.frameDeny=true",
        "traefik.http.middlewares.onlyoffice-headers.headers.browserXssFilter=true",
        "traefik.http.middlewares.onlyoffice-headers.headers.contentTypeNosniff=true",
        "traefik.http.middlewares.onlyoffice-headers.headers.stsIncludeSubdomains=true",
        "traefik.http.middlewares.onlyoffice-headers.headers.stsPreload=true",
        "traefik.http.middlewares.onlyoffice-headers.headers.stsSeconds=31536000",
        "traefik.http.middlewares.onlyoffice-headers.headers.forceSTSHeader=true",
        "traefik.http.middlewares.onlyoffice-headers.headers.accessControlMaxAge=15552000",
        "traefik.http.middlewares.onlyoffice-headers.headers.customFrameOptionsValue=SAMEORIGIN",
        "traefik.http.middlewares.onlyoffice-headers.headers.customrequestheaders.X-Forwarded-Proto=https",
        "traefik.http.middlewares.onlyoffice-headers.headers.accesscontrolalloworiginlist=*",
        "traefik.http.routers.onlyoffice.middlewares=onlyoffice-headers@consulcatalog",

What is the expected behavior? Passed example and integrate to nextcloud.

Did this work in previous versions of DocumentServer? First install in standalone docker Works with onlyoffice from apps store nextcloud, but I prefer to outsource onlyoffice

DocumentServer version: 7.0.1.37

Operating System: Ubuntu 22.04 Docker version 20.10.15 Nomad 1.2.6 Traefik v2.6.1

Browser version: Firefox 100

🤔

fred-gb avatar May 16 '22 15:05 fred-gb

Hi,

After many attemps, this is works:

        "traefik.enable=true",
        "traefik.http.routers.onlyoffice.tls=true",
        "traefik.http.routers.onlyoffice.tls.certresolver=myresolver",
        "traefik.http.routers.onlyoffice.tls.options=mintls12@file",
        "traefik.http.routers.onlyoffice.entrypoints=https",
        "traefik.http.routers.onlyoffice.rule=Host(`office.{{ fqdn }}`)",

        "traefik.http.middlewares.onlyoffice-headers.headers.customResponseHeaders.X-Robots-Tag=none",
        "traefik.http.middlewares.onlyoffice-headers.headers.customResponseHeaders.Strict-Transport-Security=max-age=63072000",
        "traefik.http.middlewares.onlyoffice-headers.headers.browserXssFilter=true",
        "traefik.http.middlewares.onlyoffice-headers.headers.contentTypeNosniff=true",
        "traefik.http.middlewares.onlyoffice-headers.headers.stsIncludeSubdomains=true",
        "traefik.http.middlewares.onlyoffice-headers.headers.stsPreload=true",
        "traefik.http.middlewares.onlyoffice-headers.headers.stsSeconds=31536000",
        "traefik.http.middlewares.onlyoffice-headers.headers.forceSTSHeader=true",
        "traefik.http.middlewares.onlyoffice-headers.headers.accessControlMaxAge=15552000",

        "traefik.http.middlewares.onlyoffice-headers.headers.customrequestheaders.X-Forwarded-Proto=https",
        "traefik.http.middlewares.onlyoffice-headers.headers.accesscontrolalloworiginlist=*",
        "traefik.http.routers.onlyoffice.middlewares=onlyoffice-headers@consulcatalog",

And find little mistake in volume data path (maybe the root cause)

Hope that can help someone

fred-gb avatar May 17 '22 07:05 fred-gb

FYI, it seems that

"traefik.http.middlewares.onlyoffice-headers.headers.accesscontrolalloworiginlist=*",

is not needed, only setting X-Forwarded-Proto is required :P

schklom avatar Jul 11 '22 16:07 schklom

for anyone else that comes looking, the above headers are needed for seafile to be able to use onlyoffice behind traefik. Note the "accesscontrolalloworiginlist=*" line is not needed. the following config worked for me to allow seafile (https://seafile.domain.com) to connect to onlyoffice correctly (https://docs.domain.com).

docker-compose:

  onlyoffice:
    image: onlyoffice/documentserver
    container_name: onlyoffice
    restart: unless-stopped
    networks:
      traefik_proxy:
    
    #this env_file is only needed if you use portainer to pass environmental vairables
    env_file:
      - ../stack.env
    environment:
      - JWT_ENABLED=true #this is the default and probably not needed, but just in case
    labels:
      - "traefik.enable=true"
      - "traefik.http.routers.onlyoffice.entrypoints=websecure"
      - "traefik.http.routers.onlyoffice.rule=Host(`docs.domain.com`)"
      - "traefik.http.routers.onlyoffice.tls=true"
      - "traefik.http.routers.onlyoffice.tls.certresolver=myresolver"
      - "traefik.http.services.onlyoffice.loadbalancer.server.port=80"
      - "traefik.docker.network=traefik_proxy"

      - "traefik.http.middlewares.onlyoffice-headers.headers.customResponseHeaders.X-Robots-Tag=none"
      - "traefik.http.middlewares.onlyoffice-headers.headers.customResponseHeaders.Strict-Transport-Security=max-age=63072000"
      - "traefik.http.middlewares.onlyoffice-headers.headers.browserXssFilter=true"
      - "traefik.http.middlewares.onlyoffice-headers.headers.contentTypeNosniff=true"
      - "traefik.http.middlewares.onlyoffice-headers.headers.stsIncludeSubdomains=true"
      - "traefik.http.middlewares.onlyoffice-headers.headers.stsPreload=true"
      - "traefik.http.middlewares.onlyoffice-headers.headers.stsSeconds=31536000"
      - "traefik.http.middlewares.onlyoffice-headers.headers.forceSTSHeader=true"
      - "traefik.http.middlewares.onlyoffice-headers.headers.accessControlMaxAge=15552000"

      - "traefik.http.middlewares.onlyoffice-headers.headers.customrequestheaders.X-Forwarded-Proto=https"
      - "traefik.http.routers.onlyoffice.middlewares=onlyoffice-headers"

laxmanpradhan avatar Apr 24 '24 00:04 laxmanpradhan