cross-posted from: https://lemmy.blahaj.zone/post/16452222

Hello friends, I’ve been pulling my hair out trying to figure out how to get my service to properly play well with traefik.

My service is reachable at <host>/dnd-notes/page, but the service needs to fetch additional resources and fails to do so.

IE: user navigates to <host>/dnd-notes/foobar

foobar loads. foobar fetches <host>/.client/main.css foobar fails to find this resource.

Here is my static configuration:

## traefik-static.yml
providers:
  docker:     
    exposedByDefault: false
    
api:
  insecure: true
  dashboard: true

entryPoints: 
  web:
    address: :80
  websecure:  
    address: :443
    
log:
  level: DEBUG

Here is my compose:

services:
  traefik:
    image: "traefik:latest"
    container_name: "traefik"
    ports:
      - "80:80"
      - "8080:8080"
    volumes:
      - "/var/run/docker.sock:/var/run/docker.sock:ro"
      - "./traefik/traefik.yaml:/etc/traefik/traefik.yaml"

  silverbullet:
    image: zefhemel/silverbullet
    container_name: "dnd-notes"
    volumes:
      - './dnd-notes/space:/space'
    labels:
      - "traefik.enable=true"
      - "traefik.http.routers.dndnotes.rule=PathPrefix(`/dnd-notes/`)"
      - "traefik.http.routers.dndnotes.service=dndnotes"
      - "traefik.http.routers.dndnotes.entrypoints=web"
      - "traefik.http.routers.dndnotes.middlewares=dndnotes_stripprefix"
      - "traefik.http.services.dndnotes.loadbalancer.server.port=3000"
      - "traefik.http.middlewares.dndnotes_stripprefix.stripprefix.prefixes=/dnd-notes"
  • zamithalOP
    link
    fedilink
    arrow-up
    1
    ·
    5 days ago

    Thank you, it probably would have taken me a while to figure that out.

    To use subdomains on my internal network, I will need my own dns service correct?

    <subdomain>.<hostname> will not resolve and neither will <subdomain>.<lan-ip>

    I could use a different port, but then I’m not really using the reverse proxy

    • worldofbirths@lemmy.world
      link
      fedilink
      arrow-up
      1
      ·
      5 days ago

      You need a domain name that will resolve to the IP address of the machine running the server. It doesn’t need to be your own DNS server. If you already have a domain name, you can just add an A record that points to the IP in your local network.