# 🚀 Traefik: Reverzní proxy pro Docker – správa subdomén a HTTPS 👉 [[1.1.1 O projektu]] 👉 [[1.1.2 Vlastní digitální svět (přehled článků)]] ## 📌 Úvod: Proč potřebujeme reverzní proxy? Když provozujeme více služeb v Dockeru, může být **správa IP adres a portů složitá**. Reverzní proxy **Traefik** tento problém elegantně řeší tím, že: - 📌 Umožňuje **přístup přes domény místo IP adres**. - 🔒 Automaticky nastavuje **HTTPS certifikáty**. - 🔀 Směruje provoz na správné služby podle pravidel. **V tomto článku si ukážeme jednoduchou konfiguraci Traefiku**, která vám umožní: ✅ **Přístup k Portaineru a Traefiku přes subdomény.** ✅ **Automatickou správu HTTPS certifikátů.** ✅ **Logování a ladění s pomocí AI.** ![[image_traefik.png]] --- ## 🌍 Nastavení DNS pro subdomény Pro správné fungování musíme v DNS záznamech nastavit směřování domény na náš server: Vytvořte A záznam: - `traefik.moje-domena.cz` → **IP adresa serveru** - `portainer.moje-domena.cz` → **IP adresa serveru** --- ## 📄 Použití ENV proměnných pro bezpečnější konfiguraci Místo přímého zápisu citlivých údajů do `docker-compose.yml` budeme používat **`.env` soubor**. Vytvořte soubor `.env` ve stejném adresáři jako `docker-compose.yml`: ``` DOMAIN=moje-domena.cz [email protected] ``` Upravíme `docker-compose.yml`, aby načítal tyto proměnné pomocí syntaxe `${env_hodnota}`: ```yaml version: '3.8' services: traefik: image: "traefik:v2.10" container_name: "traefik" restart: always networks: - digilifehub_network ports: - "80:80" - "443:443" volumes: - "/var/run/docker.sock:/var/run/docker.sock" - "./traefik.yml:/etc/traefik/traefik.yml" - "./acme.json:/acme.json" env_file: - .env labels: - "traefik.enable=true" - "traefik.http.routers.api.rule=Host(`traefik.${DOMAIN}`)" - "traefik.http.routers.api.service=api@internal" - "traefik.http.routers.api.entrypoints=websecure" - "traefik.http.routers.api.tls.certresolver=myresolver" networks: digilifehub_network: external: true ``` --- ## 🛠️ Vytvoření souboru `traefik.yml` `traefik.yml` je konfigurační soubor pro Traefik jako takový, nezaměňujte s konfigurací pro docker kontejner (docker-compose.yml) ```yaml api: dashboard: true entryPoints: web: address: ":80" websecure: address: ":443" certificatesResolvers: myresolver: acme: email: "${EMAIL}" storage: "/acme.json" httpChallenge: entryPoint: "web" providers: docker: watch: true exposedByDefault: false ``` --- ## 📌 Spuštění kontejneru Nezapomeňte, že `.env` soubor **nesmí být součástí veřejného repozitáře**. Přidejte ho do `.gitignore`, pokud používáte Git: ``` .env ``` Nyní spusťte kontejner: ```sh docker-compose up -d ``` ✅ **Traefik nyní běží a můžeme přidávat služby!** --- ## 🌍 Přidání pravidel směrování (subdomény) ### **Portainer dostupný na `portainer.moje-domena.cz`** ```yaml services: portainer: image: portainer/portainer-ce:latest container_name: portainer restart: always networks: - digilifehub_network labels: - "traefik.enable=true" - "traefik.http.routers.portainer.rule=Host(`portainer.${DOMAIN}`)" - "traefik.http.routers.portainer.entrypoints=websecure" - "traefik.http.routers.portainer.tls.certresolver=myresolver" ``` ✅ **Portainer je nyní dostupný přes HTTPS na `portainer.moje-domena.cz`!** --- ## 🔒 Automatické generování SSL certifikátů s Let's Encrypt Traefik automaticky vygeneruje **bezpečné certifikáty**, pokud: 1️⃣ Máme **platnou doménu** (např. `moje-domena.cz`). 2️⃣ Doména směřuje na náš server pomocí DNS A záznamu. 3️⃣ Máme správně nastavený **ACME cert resolver** v `traefik.yml`. Traefik se postará o **automatickou obnovu certifikátů**! ✅ --- ## 🛠️ Debugging a logování v Traefiku **Pokud něco nefunguje:** 📌 Zkontrolujte logy příkazem: ```sh docker logs traefik --follow ``` 📌 **Jak použít AI k řešení chyb?** - **1️⃣ Zkopírujte chybovou hlášku z logů.** - **2️⃣ Vložte ji do ChatGPT/Gemini a zeptejte se: "Co způsobuje tuto chybu a jak ji opravit?"** - **3️⃣ AI vám navrhne řešení.** ✅ **Toto vám ušetří hodiny hledání řešení!** --- ## 🔎 Kam dál? – Pokud chcete jít do hloubky 📌 **Oficiální dokumentace Traefiku:** [https://doc.traefik.io/traefik/](https://doc.traefik.io/traefik/) 📌 Existuje spousta tutoriálů, ale **tento článek ukazuje funkční minimum**. 📌 **V dalším díle:** Jak za Traefikem nasadit první reálnou aplikaci! 🚀 --- ## 🏁 Závěr a další kroky ✅ **Máme reverzní proxy, subdomény a HTTPS!** ✅ **Portainer a Traefik jsou dostupné přes subdomény.** ✅ **Používáme `.env` pro bezpečnější správu proměnných.** 👉 **Co si o tom myslíte? Používáte Traefik, nebo preferujete jiná řešení?** Dejte vědět v komentářích! --- ### ⏪ Související články ⏩ > **🔙 Předchozí článek:** > [[2025-02-03 Portainer (Jak jednoduše spravovat Docker kontejnery přes webové rozhraní)|Portainer (správa Docker kontejnerů)]] > > **🔜 Následující článek:** > [[2025-02-10 PostgreSQL (relační databáze)|PostgreSQL (relační databáze)]] #docker #traefik #osobniDigitalizace #digilifehub