notes/10-Projekt/Traefik.md

2.7 KiB
Raw Permalink Blame History

title created status tags
Traefik 2026-10-20 aktiv
projekt

Traefik

[!abstract] Översikt Traefik v3 är reverse proxy för allt på zeuz. Den tar emot trafik från Cloudflare, ordnar certifikat och skickar vidare till Docker-containrar eller andra maskiner i nätet. Se även Docker-stack.

Layout

Cloudflare → :443 (web-secure) → router (Host-regel) → middlewares → service
Fil Innehåll Ändring kräver
~/repo/Docker/traefik.yml Statisk konfig: entrypoints, cert-resolvers, providers, loggning Omstart av Traefik
~/repo/Docker/traefik/ Dynamisk konfig: middlewares, kedjor, TLS, fil-routes Inget, läses in live
Docker-labels i compose Routes för containrar docker compose up -d <tjänst>
/opt/docker_data/traefik/log/ info.log och access.log –

Två sätt att skapa en route:

  • Docker-container → labels på tjänsten (se Docker-stack#Lägga till en ny tjänst).
  • Något som inte är en container (annan maskin, Bitwarden) → router + service i traefik/static_config.yml.

Certifikat:

  • milvert_dns – Let's Encrypt via Cloudflare-DNS. Används för *.milvert.com. Tar ett par minuter för ett nytt namn.
  • peek – HTTP-utmaning, för peekskog.se.

Entrypoints: web (80) och web-secure (443) för webben. Övriga (8086, 8883 m.fl.) är för InfluxDB och MQTT.

Middlewares

Använd en färdig kedja (traefik/middleware-chains.yml) i stället för enskilda middlewares:

Kedja När
chain-authelia Admin-gränssnitt utan egen bra inloggning
chain-no-auth Tjänster med egen inloggning
chain-local Bara från hemnätet
ingen När kedjorna bryter något, t.ex. CORS eller rate limit (CouchDB)

Nya middlewares läggs i traefik/middleware.yml och kombineras till kedjor i middleware-chains.yml.

Lägga till en route till en annan maskin

I traefik/static_config.yml, under http::

routers:
  minsak-router:
    rule: "Host(`minsak.milvert.com`)"
    service: minsak-service
    middlewares:
      - chain-authelia
    entryPoints:
      - web-secure
    tls:
      certResolver: milvert_dns

services:
  minsak-service:
    loadBalancer:
      servers:
        - url: "http://10.0.0.x:8080"

Sparar du filen läser Traefik in ändringen direkt. Ingen omstart behövs.

Felsökning

  • Logg: docker exec traefik tail -f /log/info.log
  • Cloudflare 525: Traefik har inget certifikat för namnet än. Vänta några minuter.
  • unrecognized name vid test lokalt: samma sak. sniStrict gör att Traefik vägrar namn som saknar certifikat.
  • Testa förbi Cloudflare: curl --resolve minsak.milvert.com:443:127.0.0.1 https://minsak.milvert.com/