Rozdíly
Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.
Obě strany předchozí revize Předchozí verze | |||
it:server:traefik-reverzni-proxy [2025/01/14 23:33] – [Shrnutí a závěrečná konfigurace] Petr Nosek | it:server:traefik-reverzni-proxy [2025/01/15 00:01] (aktuální) – [Zabezpečení Gitea a přihlašování bez hesla] Petr Nosek | ||
---|---|---|---|
Řádek 1076: | Řádek 1076: | ||
Tím jsem dosáhl pohodlného přihlašování bez opakovaného zadávání hesla. | Tím jsem dosáhl pohodlného přihlašování bez opakovaného zadávání hesla. | ||
+ | |||
+ | |||
+ | ===== Zabezpečení Solar Assistanta na portu 80 přes Traefik ===== | ||
+ | |||
+ | Potřeboval jsem zabezpečit Solar Assistanta, který běží na Raspberry Pi na portu 80, a rozhodl jsem se k tomu využít Traefik. Vytvořil jsem tunel pomocí `autossh` ze serveru, na kterém běží Traefik. | ||
+ | |||
+ | SSH tunel je šifrovaný a web Solar Assistanta byl po propojení dostupný na adrese `localhost: | ||
+ | |||
+ | V tomto případě se konfigurace odehrává pomocí labelů u kontejneru Traefik, protože se nebude přistupovat do jiného kontejneru. | ||
+ | |||
+ | ==== Konfigurace Docker Compose ==== | ||
+ | |||
+ | <code yaml> | ||
+ | proxy: | ||
+ | image: traefik | ||
+ | restart: always | ||
+ | container_name: | ||
+ | ports: | ||
+ | - " | ||
+ | - " | ||
+ | extra_hosts: | ||
+ | - " | ||
+ | environment: | ||
+ | - CLOUDFLARE_EMAIL=${CLOUDFLARE_EMAIL} | ||
+ | - CLOUDFLARE_DNS_API_TOKEN=${CLOUDFLARE_DNS_API_TOKEN} | ||
+ | - LETSENCRYPT_EMAIL=${LETSENCRYPT_EMAIL} | ||
+ | volumes: | ||
+ | - ${VOLUME_PATH}/ | ||
+ | - ${VOLUME_PATH}/ | ||
+ | - / | ||
+ | - ./ | ||
+ | - ./ | ||
+ | labels: | ||
+ | traefik.enable: | ||
+ | |||
+ | # Přesměrování HTTP na HTTPS | ||
+ | traefik.http.routers.solar-insecure.rule: | ||
+ | traefik.http.routers.solar-insecure.entrypoints: | ||
+ | traefik.http.routers.solar-insecure.middlewares: | ||
+ | |||
+ | # Middleware pro přesměrování na HTTPS | ||
+ | traefik.http.middlewares.redirect.redirectscheme.scheme: | ||
+ | |||
+ | # HTTPS router | ||
+ | traefik.http.routers.solar.rule: | ||
+ | traefik.http.routers.solar.entrypoints: | ||
+ | traefik.http.routers.solar.tls.certresolver: | ||
+ | traefik.http.routers.solar.service: | ||
+ | </ | ||
+ | |||
+ | ==== Dynamická konfigurace ==== | ||
+ | |||
+ | Do `docker-compose.yml` jsem musel přidat odkaz na dynamické nastavení: | ||
+ | <code yaml> | ||
+ | traefik.http.routers.solar.service: | ||
+ | </ | ||
+ | |||
+ | Soubor `traefik.yml` jsem upravil takto: | ||
+ | <code yaml> | ||
+ | providers: | ||
+ | docker: | ||
+ | exposedByDefault: | ||
+ | file: | ||
+ | directory: "/ | ||
+ | watch: true # Sleduje změny v souboru | ||
+ | </ | ||
+ | |||
+ | Ve složce `traefik-dynamic-config` se nachází soubor `dynamic-config.yml`: | ||
+ | <code yaml> | ||
+ | http: | ||
+ | services: | ||
+ | solar: | ||
+ | loadBalancer: | ||
+ | servers: | ||
+ | - url: " | ||
+ | </ | ||
+ | |||
+ | ==== Postup konfigurace ==== | ||
+ | |||
+ | 1. Musel jsem připravit dynamickou konfiguraci a přidat složku: | ||
+ | < | ||
+ | ./ | ||
+ | </ | ||
+ | Docker neumí pracovat se změnami, pokud je definován pouze soubor – je třeba nasměrovat na celou složku. | ||
+ | |||
+ | 2. Změna se projeví bez restartu Traefiku díky nastavení `watch: true`. | ||
+ | |||
+ | 3. Původně jsem se snažil nadefinovat přesměrování přímo v `docker-compose.yml`, | ||
+ | |||
+ | 4. Nasledováním rady z [[https:// | ||
+ | |||
+ | Dokud jsem nepřesunul nastavení do dynamického konfiguračního souboru, konfigurace nefungovala. | ||
+ | |||
+ | |||
===== Shrnutí a závěrečná konfigurace ===== | ===== Shrnutí a závěrečná konfigurace ===== |