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 ===== | ||