Too Many Redirects

I’m setting up nextcloud to run on a cluster of Raspberry Pi’s. I have traefik 2.0, prometheus, grafana, and a placeholder site up and running nicely. I’m using Cloudflare and it’s SSL.

When I try to browse https://nc.mydomain.bleh, I get ERR_TOO_MANY_REDIRECTS in Chrome.

Here’s my traefik.yml:

  reverse-proxy:
    image: traefik:v2.0
    command:
      - --api.insecure=true
      - --providers.docker.endpoint=unix:///var/run/docker.sock
      - --providers.docker.swarmMode=true
      - --providers.docker.exposedbydefault=false
      - --providers.docker.network=traefik-public
      - --entrypoints.web.address=:80
      - --entrypoints.ssl.address=:443
      - --metrics.prometheus=true
      - --metrics.prometheus.addEntryPointsLabels=true
      - --metrics.prometheus.buckets=0.100000, 0.300000, 1.200000, 5.000000
      - --metrics.prometheus.addServicesLabels=true
      - --entryPoints.metrics.address=:8082
      - --metrics.prometheus.entryPoint=metrics
    ports:
      - 80:80
      - 443:443
      - 8080:8080
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
    networks:
      - traefik-public
    deploy:
      placement:
        constraints:
          - node.role == manager

And here is my nextcloud.yml.

version: "3.7"

services:
  app:
    image: ownyourbits/nextcloudpi
    env_file:
      - nextcloud.env/.env
      - nextcloud.env/db.env
    volumes:
      - app:/var/www/html
    networks:
      - nextcloud
      - traefik-public
    depends_on:
      - db
      - cache
    deploy:
      labels:      
        - traefik.http.routers.nextcloud.rule=Host(`nc.mydomain.bleh`)
        - traefik.http.routers.nextcloud.entrypoints=web
        
        - traefik.http.middlewares.nc-rep.redirectregex.regex=://(.*)/.well-known/(card|cal)dav
        - traefik.http.middlewares.nc-rep.redirectregex.replacement=://$$1/remote.php/dav/
        - traefik.http.middlewares.nc-rep.redirectregex.permanent=true
        - traefik.http.middlewares.nc-header.headers.customFrameOptionsValue=SAMEORIGIN
        - traefik.http.routers.nextcloud.middlewares=nc-rep,nc-header

        - traefik.http.services.nextcloud.loadbalancer.server.port=80
        - traefik.enable=true
      replicas: 1
      restart_policy:
        condition: on-failure
  db:
    image: arm32v7/postgres
    env_file:
      - nextcloud.env/db.env
    ports:
      - 5432:5432
    volumes:
      - db:/var/lib/postgresql/data
    networks:
      - nextcloud
    deploy:
      replicas: 1
      restart_policy:
        condition: on-failure
  cache:
    image: redis
    volumes:
      - cache:/data
    ports:
      - 6379:6379
    networks:
      - nextcloud
    deploy:
      replicas: 1
      restart_policy:
        condition: on-failure

volumes:
  app:
    driver: local
    driver_opts:
      type: nfs
      o: addr=10.0.0.3,rw,nfsvers=4,async
      device: :/tank/nextcloud/cache
  db:
    driver: local
    driver_opts:
      type: nfs
      o: addr=10.0.0.3,rw,nfsvers=4,async
      device: :/tank/nextcloud/db
  cache:
    driver: local
    driver_opts:
      type: nfs
      o: addr=10.0.0.3,rw,nfsvers=4,async
      device: :/tank/nextcloud/cache

networks:
  nextcloud:
  traefik-public:
    external: true

oh, okay, cool.