49 lines
1.7 KiB
YAML
49 lines
1.7 KiB
YAML
version: '3'
|
|
services:
|
|
reverse-proxy:
|
|
image: traefik:2.6.2
|
|
command: --api=false --api.dashboard=false --providers.docker
|
|
networks:
|
|
- internal-nw
|
|
- default
|
|
ports:
|
|
- 127.0.0.1:1314:80
|
|
restart: always
|
|
volumes:
|
|
# So that traefik can listen to the Docker events
|
|
- /var/run/docker.sock:/var/run/docker.sock:ro
|
|
|
|
homepage:
|
|
build:
|
|
context: .
|
|
image: homepage
|
|
networks:
|
|
- internal-nw
|
|
restart: always
|
|
labels:
|
|
- traefik.enable=true
|
|
- traefik.http.services.homepage.loadbalancer.server.port=80
|
|
- traefik.http.routers.homepage.rule=Host(`localhost`) || Host(`127.0.0.1`) || Host(`homepage`) || Host(`6426tqrh4y5uobmo5y2csaip3m3avmjegd2kpa24sadekpxglbm34aqd.onion`)
|
|
# ref: https://stackoverflow.com/a/61976953
|
|
# ref: https://github.com/traefik/traefik/issues/563
|
|
- "traefik.http.routers.homepage.middlewares=homepage-redirectregex, homepage-replacepathregex"
|
|
|
|
- "traefik.http.middlewares.homepage-replacepathregex.replacepathregex.regex=^/tags/(.*)$$"
|
|
- "traefik.http.middlewares.homepage-replacepathregex.replacepathregex.replacement=https://dotya.ml/tags/$$1/"
|
|
- "traefik.http.middlewares.homepage-redirectregex.redirectregex.regex=^/tags$$"
|
|
- "traefik.http.middlewares.homepage-redirectregex.redirectregex.replacement=https://dotya.ml/tags/"
|
|
- "traefik.frontend.redirect.regex=^https://dotya.ml/tags/(.*)$$"
|
|
- "traefik.frontend.redirect.replacement=https://dotya.ml/tags/$$1/"
|
|
- "traefik.frontend.rule=PathPrefix:/tags;ReplacePathRegex: ^/tags/(.*) /tags/$$1/"
|
|
|
|
logging:
|
|
driver: json-file
|
|
options:
|
|
max-size: "5m"
|
|
max-file: "5"
|
|
|
|
networks:
|
|
internal-nw:
|
|
internal: true
|
|
default:
|