Excellent, it is all working now.
One minor points, the oauth service has restart: always
, it should be using restart_policy
. Should it be set to on-failure as for node-red or left at default (which is any I think) as for traefik?
Also one issue, which may be normal behaviour, with the logs on debug I see the log below, repeated about every 15 seconds, as if something is repeatedly restarting. Though as I said, this may be normal.
time="2020-05-03T09:40:42Z" level=debug msg="Network not found, id: s79msp9gdl2xbppxdk0bfhudx" providerName=docker
time="2020-05-03T09:40:42Z" level=debug msg="Filtering disabled container" providerName=docker container=portainer-portainer-qr5sa6fkhw5j45c6tu7vxc8ls
time="2020-05-03T09:40:42Z" level=debug msg="Configuration received from provider docker: {\"http\":{\"routers\":{\"http-catchall\":{\"entryPoints\":[\"web\"],\"middlewares\":[\"redirect-to-https\"],\"service\":\"dummy-svc\",\"rule\":\"hostregexp(`{host:.+}`)\"},\"nodered\":{\"entryPoints\":[\"websecure\"],\"middlewares\":[\"admin\"],\"service\":\"nodered\",\"rule\":\"Host(`nodered.mydomain.org.uk`)\",\"tls\":{\"certResolver\":\"letsencryptresolver\"}},\"oauth-rtr\":{\"entryPoints\":[\"websecure\"],\"middlewares\":[\"oauth@file\"],\"service\":\"oauth-svc\",\"rule\":\"Host(`auth.mydomain.org.uk`)\",\"tls\":{\"certResolver\":\"letsencryptresolver\"}},\"traefik\":{\"entryPoints\":[\"websecure\"],\"middlewares\":[\"admin\"],\"service\":\"api@internal\",\"rule\":\"Host(`traefik.mydomain.org.uk`)\",\"tls\":{\"certResolver\":\"letsencryptresolver\"}}},\"services\":{\"dummy-svc\":{\"loadBalancer\":{\"servers\":[{\"url\":\"http://10.0.2.35:9999\"}],\"passHostHeader\":true}},\"nodered\":{\"loadBalancer\":{\"servers\":[{\"url\":\"http://10.0.2.40:1880\"}],\"passHostHeader\":true}},\"oauth-svc\":{\"loadBalancer\":{\"servers\":[{\"url\":\"http://10.0.2.38:4181\"}],\"passHostHeader\":true}}},\"middlewares\":{\"admin\":{\"chain\":{\"middlewares\":[\"me-only\",\"oauth@file\"]}},\"me-only\":{\"ipWhiteList\":{\"sourceRange\":[\"192.168.0.0/16\",\"210.45.23.241/16\"]}},\"nodered\":{\"headers\":{\"sslRedirect\":true,\"stsSeconds\":315360000,\"stsIncludeSubdomains\":true,\"stsPreload\":true,\"forceSTSHeader\":true,\"frameDeny\":true,\"contentTypeNosniff\":true,\"browserXssFilter\":true}},\"redirect-to-https\":{\"redirectScheme\":{\"scheme\":\"https\"}}}},\"tcp\":{},\"udp\":{}}" providerName=docker
time="2020-05-03T09:40:42Z" level=debug msg="Adding certificate for domain(s) vps02.mydomain.org.uk"
time="2020-05-03T09:40:42Z" level=debug msg="Adding certificate for domain(s) auth.mydomain.org.uk"
time="2020-05-03T09:40:42Z" level=debug msg="Adding certificate for domain(s) traefik.mydomain.org.uk"
time="2020-05-03T09:40:42Z" level=debug msg="Adding certificate for domain(s) nodered.mydomain.org.uk"
time="2020-05-03T09:40:42Z" level=debug msg="No default certificate, generating one"
time="2020-05-03T09:40:42Z" level=debug msg="Creating middleware" entryPointName=web routerName=http-catchall@docker serviceName=dummy-svc middlewareName=pipelining middlewareType=Pipelining
time="2020-05-03T09:40:42Z" level=debug msg="Creating load-balancer" entryPointName=web routerName=http-catchall@docker serviceName=dummy-svc
time="2020-05-03T09:40:42Z" level=debug msg="Creating server 0 http://10.0.2.35:9999" routerName=http-catchall@docker serviceName=dummy-svc serverName=0 entryPointName=web
time="2020-05-03T09:40:42Z" level=debug msg="Added outgoing tracing middleware dummy-svc" middlewareName=tracing entryPointName=web routerName=http-catchall@docker middlewareType=TracingForwarder
time="2020-05-03T09:40:42Z" level=debug msg="Creating middleware" middlewareType=RedirectScheme entryPointName=web routerName=http-catchall@docker middlewareName=redirect-to-https@docker
time="2020-05-03T09:40:42Z" level=debug msg="Setting up redirection to https " entryPointName=web routerName=http-catchall@docker middlewareName=redirect-to-https@docker middlewareType=RedirectScheme
time="2020-05-03T09:40:42Z" level=debug msg="Adding tracing to middleware" entryPointName=web routerName=http-catchall@docker middlewareName=redirect-to-https@docker
time="2020-05-03T09:40:42Z" level=debug msg="Creating middleware" entryPointName=web middlewareName=traefik-internal-recovery middlewareType=Recovery
time="2020-05-03T09:40:42Z" level=debug msg="Creating Middleware (ResponseModifier)" routerName=nodered@docker middlewareName=admin@docker middlewareType=Chain entryPointName=websecure
time="2020-05-03T09:40:42Z" level=debug msg="Creating middleware" entryPointName=websecure routerName=nodered@docker middlewareName=pipelining middlewareType=Pipelining serviceName=nodered
time="2020-05-03T09:40:42Z" level=debug msg="Creating load-balancer" entryPointName=websecure routerName=nodered@docker serviceName=nodered
time="2020-05-03T09:40:42Z" level=debug msg="Creating server 0 http://10.0.2.40:1880" serviceName=nodered serverName=0 entryPointName=websecure routerName=nodered@docker
time="2020-05-03T09:40:42Z" level=debug msg="Added outgoing tracing middleware nodered" middlewareName=tracing middlewareType=TracingForwarder entryPointName=websecure routerName=nodered@docker
time="2020-05-03T09:40:42Z" level=debug msg="Creating middleware" middlewareName=admin@docker middlewareType=Chain routerName=nodered@docker entryPointName=websecure
time="2020-05-03T09:40:42Z" level=debug msg="Creating middleware" middlewareName=oauth@file middlewareType=ForwardedAuthType entryPointName=websecure routerName=nodered@docker
time="2020-05-03T09:40:42Z" level=debug msg="Adding tracing to middleware" routerName=nodered@docker middlewareName=oauth@file entryPointName=websecure
time="2020-05-03T09:40:42Z" level=debug msg="Creating middleware" routerName=nodered@docker middlewareName=me-only@docker middlewareType=IPWhiteLister entryPointName=websecure
time="2020-05-03T09:40:42Z" level=debug msg="Setting up IPWhiteLister with sourceRange: [192.168.0.0/16 210.45.23.241/16]" entryPointName=websecure routerName=nodered@docker middlewareName=me-only@docker middlewareType=IPWhiteLister
time="2020-05-03T09:40:42Z" level=debug msg="Adding tracing to middleware" routerName=nodered@docker entryPointName=websecure middlewareName=me-only@docker
time="2020-05-03T09:40:42Z" level=debug msg="Creating middleware" routerName=oauth-rtr@docker serviceName=oauth-svc entryPointName=websecure middlewareName=pipelining middlewareType=Pipelining
time="2020-05-03T09:40:42Z" level=debug msg="Creating load-balancer" entryPointName=websecure routerName=oauth-rtr@docker serviceName=oauth-svc
time="2020-05-03T09:40:42Z" level=debug msg="Creating server 0 http://10.0.2.38:4181" serverName=0 entryPointName=websecure routerName=oauth-rtr@docker serviceName=oauth-svc
time="2020-05-03T09:40:42Z" level=debug msg="Added outgoing tracing middleware oauth-svc" middlewareName=tracing middlewareType=TracingForwarder entryPointName=websecure routerName=oauth-rtr@docker
time="2020-05-03T09:40:42Z" level=debug msg="Creating middleware" entryPointName=websecure routerName=oauth-rtr@docker middlewareName=oauth@file middlewareType=ForwardedAuthType
time="2020-05-03T09:40:42Z" level=debug msg="Adding tracing to middleware" entryPointName=websecure routerName=oauth-rtr@docker middlewareName=oauth@file
time="2020-05-03T09:40:42Z" level=debug msg="Creating Middleware (ResponseModifier)" middlewareName=admin@docker middlewareType=Chain entryPointName=websecure routerName=traefik@docker
time="2020-05-03T09:40:42Z" level=debug msg="Added outgoing tracing middleware api@internal" entryPointName=websecure routerName=traefik@docker middlewareName=tracing middlewareType=TracingForwarder
time="2020-05-03T09:40:42Z" level=debug msg="Creating middleware" routerName=traefik@docker middlewareName=admin@docker middlewareType=Chain entryPointName=websecure
time="2020-05-03T09:40:42Z" level=debug msg="Creating middleware" entryPointName=websecure routerName=traefik@docker middlewareName=oauth@file middlewareType=ForwardedAuthType
time="2020-05-03T09:40:42Z" level=debug msg="Adding tracing to middleware" routerName=traefik@docker entryPointName=websecure middlewareName=oauth@file
time="2020-05-03T09:40:42Z" level=debug msg="Creating middleware" middlewareName=me-only@docker middlewareType=IPWhiteLister entryPointName=websecure routerName=traefik@docker
time="2020-05-03T09:40:42Z" level=debug msg="Setting up IPWhiteLister with sourceRange: [192.168.0.0/16 210.45.23.241/16]" entryPointName=websecure routerName=traefik@docker middlewareName=me-only@docker middlewareType=IPWhiteLister
time="2020-05-03T09:40:42Z" level=debug msg="Adding tracing to middleware" routerName=traefik@docker middlewareName=me-only@docker entryPointName=websecure
time="2020-05-03T09:40:42Z" level=debug msg="Creating middleware" entryPointName=websecure middlewareName=traefik-internal-recovery middlewareType=Recovery
time="2020-05-03T09:40:42Z" level=debug msg="Try to challenge certificate for domain [auth.mydomain.org.uk] found in HostSNI rule" providerName=letsencryptresolver.acme rule="Host(`auth.mydomain.org.uk`)" routerName=oauth-rtr@docker
time="2020-05-03T09:40:42Z" level=debug msg="Try to challenge certificate for domain [traefik.mydomain.org.uk] found in HostSNI rule" providerName=letsencryptresolver.acme routerName=traefik@docker rule="Host(`traefik.mydomain.org.uk`)"
time="2020-05-03T09:40:42Z" level=debug msg="Try to challenge certificate for domain [nodered.mydomain.org.uk] found in HostSNI rule" providerName=letsencryptresolver.acme rule="Host(`nodered.mydomain.org.uk`)" routerName=nodered@docker
time="2020-05-03T09:40:42Z" level=debug msg="Looking for provided certificate(s) to validate [\"nodered.mydomain.org.uk\"]..." routerName=nodered@docker providerName=letsencryptresolver.acme rule="Host(`nodered.mydomain.org.uk`)"
time="2020-05-03T09:40:42Z" level=debug msg="No ACME certificate generation required for domains [\"nodered.mydomain.org.uk\"]." rule="Host(`nodered.mydomain.org.uk`)" routerName=nodered@docker providerName=letsencryptresolver.acme
time="2020-05-03T09:40:42Z" level=debug msg="Looking for provided certificate(s) to validate [\"auth.mydomain.org.uk\"]..." providerName=letsencryptresolver.acme rule="Host(`auth.mydomain.org.uk`)" routerName=oauth-rtr@docker
time="2020-05-03T09:40:42Z" level=debug msg="No ACME certificate generation required for domains [\"auth.mydomain.org.uk\"]." providerName=letsencryptresolver.acme rule="Host(`auth.mydomain.org.uk`)" routerName=oauth-rtr@docker
time="2020-05-03T09:40:42Z" level=debug msg="Looking for provided certificate(s) to validate [\"traefik.mydomain.org.uk\"]..." rule="Host(`traefik.mydomain.org.uk`)" providerName=letsencryptresolver.acme routerName=traefik@docker
time="2020-05-03T09:40:42Z" level=debug msg="No ACME certificate generation required for domains [\"traefik.mydomain.org.uk\"]." routerName=traefik@docker rule="Host(`traefik.mydomain.org.uk`)" providerName=letsencryptresolver.acme