Пароль нужно кодировать с помощью htpasswd (в т. ч. в Докере), под Windows с помощью bcrypt-tool.
# Установить htpasswd apk add apache2-utils # Пользователь user, пароль 234567 htpasswd -nb user 234567 user:$apr1$jSrLMlYc$SqO40GakivRBqlS/5UsXL0 # Docker docker run --rm httpd:alpine htpasswd -nb user 234567
В пароле необходимо удваивать знак доллара!
# В docker-compose.yml - "traefik.http.routers.service.middlewares=service-auth" - "traefik.http.middlewares.service-auth.basicauth.users=user:$$apr1$$jSrLMlYc$$SqO40GakivRBqlS/5UsXL0"
Когда нужно пробрасывать, например,
http://host.local/conv -> container:5800
и при этом писать правила так:
handbrake: image: jlesage/handbrake labels: - "traefik.http.routers.handbrake.rule=Host(`host.local`) && PathPrefix(`/conv`)" - "traefik.http.middlewares.handbrake-stripprefix.stripprefix.prefixes=/conv" - "traefik.http.routers.handbrake.middlewares=handbrake-stripprefix"
, то если обращаться на адрес http://host.local/conv, будет открываться лишь часть html, остальное грузиться не будет. Нормально работает, если в конце поставить слэш, а именно - http://host.local/conv/.
Чтобы сделать удобно, нужно написать так:
labels: - "traefik.http.routers.handbrake.rule=host(`host.local`) && PathPrefix(`/conv`)" - "traefik.http.routers.handbrake.middlewares=handbrake-redirectregex, handbrake-replacepathregex" - "traefik.http.middlewares.handbrake-replacepathregex.replacepathregex.regex=^/conv/(.*)" - "traefik.http.middlewares.handbrake-replacepathregex.replacepathregex.replacement=/$$1" - "traefik.http.middlewares.handbrake-redirectregex.redirectregex.regex=^(.*)/conv$$" - "traefik.http.middlewares.handbrake-redirectregex.redirectregex.replacement=$$1/conv/"
В этом случае слэш будет добавляться. https://stackoverflow.com/questions/41637806/routing-paths-with-traefik
Для Nextcloud пример посложнее:
labels: - "traefik.http.routers.nextcloud.rule=Host(`host.local`) && PathPrefix(`/cloud`)" - "traefik.http.routers.nextcloud.middlewares=nextcloud-redirectregex, nextcloud-caldav, nextcloud-replacepath" - "traefik.http.middlewares.nextcloud-replacepath.stripprefix.prefixes=/cloud" - "traefik.http.middlewares.nextcloud-caldav.redirectregex.permanent=true" - "traefik.http.middlewares.nextcloud-caldav.redirectregex.regex=^http://(.*)/.well-known/(card|cal)dav" - "traefik.http.middlewares.nextcloud-caldav.redirectregex.replacement=http://$${1}/remote.php/dav/" - "traefik.http.middlewares.nextcloud-redirectregex.redirectregex.regex=^(.*)/cloud$$" - "traefik.http.middlewares.nextcloud-redirectregex.redirectregex.replacement=$$1/cloud/"
С поддоменом таких проблем нет - просто пишешь
labels: - "traefik.http.routers.handbrake.rule=host(`conv.host.local`)"