いちいちdocker-composeで一つ一つ指定するのがめんどうなので、どうにかならないかなーと思ってたんだが、すげーわかんなかった。
traefik middlewares
参考になったサイト
https://github.com/realtarget/traefik2-docker-stack
他のやり方はわからなかったけど、とりあえずprovider:
にファイルとして呼び出す方法でなんとかなった!
設定の共有化できる!!!
うちの設定
/etc/traefik/traefik.yml
providers:
file:
filename: /etc/traefik/provider_file.yml
このファイルを用意して、中身を書く。
/etc/traefik/provider_file.yml
http:
middlewares:
nextcloud-redirectregex:
redirectRegex:
regex: "/.well-known/(card|cal)dav"
replacement: "/remote.php/dav"
permanent: true
stsHeader:
headers:
stsSeconds: 315360000
stsIncludeSubdomains: true
stsPreload: true
forceSTSHeader: true
contentTypeNosniff: true
browserXSSFilter: true
jpsonic-dsub:
plugin:
subfilter:
filters:
- regex: subsonic
replacement: madsonic
lastModified: true
こんな感じ。
もうgithub見ればいいみたいな感じになるけど……まあいいか。
とりあえずミドルウェアは別ファイルでいいかな。
traefik.yml
に書くにはどうしたらいいかは……わからない。
docker-compose.yml
には
docker-compose.yml
label:
traefik.http.routers.nextcloud.middlewares: stsHeader@file, nextcloud-redirectregex@file
みたいに書けばよい。ウィ!