Skip to content

Instantly share code, notes, and snippets.

@Ssmidge
Created October 13, 2024 17:43
Show Gist options
  • Save Ssmidge/1e5060e3e906d0cd474613dce9f57969 to your computer and use it in GitHub Desktop.
Save Ssmidge/1e5060e3e906d0cd474613dce9f57969 to your computer and use it in GitHub Desktop.
services:
traefik:
image: "traefik:v3.0"
container_name: "traefik"
ports:
- 127.0.0.1:38153:80
- 57665:8080 # Dashboard
command:
- "--configFile=/traefik.yaml"
volumes:
- "/run/user/2279/docker.sock:/var/run/docker.sock:ro"
- "./traefik.yaml:/etc/traefik/traefik.yml"
- "./traefik-dynamic.yaml:/traefik-dynamic.yaml"
networks:
- web
krill:
container_name: krill
environment:
- KRILL_LOG_LEVEL=debug
- KRILL_FQDN=rpki01.hel-fi.rpki.win
- KRILL_AUTH_TOKEN=
- TZ=America/Toronto
volumes:
- ./data:/var/krill/data/
image: nlnetlabs/krill
networks:
- web
- krill_internal
labels:
- "traefik.enable=true"
# - "traefik.http.routers.krill"
# - "traefik.http.routers.krill.rule=Host(`rpki01.hel-fi.rpki.win`)"
# - "traefik.http.routers.krill@file.service=krill"
- "traefik.http.services.krill.loadbalancer.server.scheme=https"
- "traefik.http.services.krill.loadbalancer.server.port=3000"
# - "traefik.http.routers.krill@file.middlewares=krill@file"
krill_pub:
container_name: krill_publisher
environment:
- KRILL_LOG_LEVEL=debug
- KRILL_FQDN=rpki01.hel-fi.rpki.win
- KRILL_AUTH_TOKEN=
- TZ=America/Toronto
volumes:
- ./krill_pub/data:/var/krill/data/
- ./krill_pub/rsync:/var/krill/data/repo/rsync/
image: nlnetlabs/krill
networks:
- web
- krill_internal
labels:
- "traefik.enable=true"
# - "traefik.http.routers=krillpub@file"
# - "traefik.http.routers.krillpub.rule=(Host(`rpki01.hel-fi.rpki.win`) && (PathPrefix(`/rrdp`) || PathPrefix(`/repo`) || PathPrefix(`/rfc8181`) || PathPrefix(`/pubapi`))) || (Host(`rpki01.publisher.hel-fi.rpki.win`) && !PathPrefix(`/ui`))"
# - "traefik.http.routers.krillpub.entrypoints=web"
- "traefik.http.services.krillpub.loadbalancer.server.scheme=https"
- "traefik.http.services.krillpub.loadbalancer.server.port=3000"
# - "traefik.http.middlewares.replace-pubapi.replacePathRegex.regex=^/pubapi(.*)"
# - "traefik.http.middlewares.replace-pubapi.replacePathRegex.replacement=/api$1"
# - "traefik.http.routers.krillpub.middlewares=krillpub@file,replace-pubapi@file"
rsyncd:
image: vimagick/rsyncd
ports:
- "44595:873"
volumes:
- ./rsyncd/rsyncd.conf:/etc/rsyncd.conf
- ./krill_pub/rsync:/repo
restart: always
whoami:
image: "traefik/whoami"
container_name: "simple-service"
networks:
- web
labels:
- "traefik.enable=true"
- "traefik.http.services.whoami.loadbalancer.server.scheme=http"
networks:
krill_internal:
driver: bridge
web:
ipam:
config:
- subnet: 172.16.5.0/24
gateway: 172.16.5.1
http:
routers:
krill:
rule: Host(`rpki01.hel-fi.rpki.win`)
entrypoints: [web]
service: krill@docker
middlewares:
- krill
# - trustAuth
krillpub:
rule: (Host(`rpki01.hel-fi.rpki.win`) && (PathPrefix(`/rrdp`) || PathPrefix(`/repo`) || PathPrefix(`/rfc8181`) || PathPrefix(`/pubapi`))) || (Host(`rpki01.publisher.hel-fi.rpki.win`) && !PathPrefix(`/ui`))
entrypoints: [web]
service: krillpub@docker
middlewares:
- krillpub
- replace-pubapi
# - trustAuth
whoami:
rule: Path(`/whoami`)
service: whoami@docker
entrypoints: [web]
middlewares: [trustAuth]
# services:
# krill-krill@docker:
# loadBalancer:
# server:
# scheme: https
# port: 3000
# krill-pub-krill@docker:
# loadBalancer:
# server:
# scheme: https
# port: 3000
middlewares:
trustAuth:
forwardAuth:
trustForwardHeader: true
krill:
headers:
customResponseHeaders:
X-Instance: "Krill"
krillpub:
headers:
customResponseHeaders:
X-Instance: "KrillPublisher"
replace-pubapi:
replacePathRegex:
regex: "^/pubapi(.*)"
replacement: "/api$1"
entryPoints:
web:
address: ":80"
# transport:
# lifeCycle:
# requestAcceptGraceTimeout: 42s
# graceTimeOut: 42s
# respondingTimeouts:
# readTimeout: 42s
# writeTimeout: 42s
# idleTimeout: 42s
# keepAliveMaxTime: 42s
# keepAliveMaxRequests: 42
forwardedHeaders:
insecure: true
api:
insecure: true
dashboard: true
providers:
docker:
exposedByDefault: false
watch: true
network: "krill_web"
file:
filename: "/traefik-dynamic.yaml"
log:
level: "DEBUG"
accesslog: {}
serversTransport:
insecureSkipVerify: true
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment