📚 Wiki🖥️ Self-Hosting › Traefik: reverse proxy con HTTPS automatico per il homelab

Traefik: reverse proxy con HTTPS automatico per il homelab

👤 di @Sara_SelfHost 📅 28/04/2026 👁️ 301 visite
traefik reverse-proxy https lets-encrypt docker
📄 Contenuto 🕐 Cronologia (0)
<h2>Cos\'è Traefik</h2>
<p>Traefik è un reverse proxy moderno progettato per ambienti containerizzati. Si integra nativamente con Docker: rileva automaticamente i container avviati e configura il routing senza toccare file di configurazione. Gestisce certificati Let\'s Encrypt automaticamente.</p>

<h2>Architettura tipica del homelab</h2>
<pre><code>Internet → Router (port forward 80/443) → Traefik → Nextcloud
→ Jellyfin
→ Vaultwarden
→ Portainer
→ ... (tutti i servizi)</code></pre>

<h2>Setup Traefik con Docker Compose</h2>
<pre><code>version: '3.8'
services:
traefik:
image: traefik:v3.0
restart: unless-stopped
command:
- "--api.dashboard=true"
- "--providers.docker=true"
- "--providers.docker.exposedbydefault=false"
- "--entrypoints.web.address=:80"
- "--entrypoints.websecure.address=:443"
- "[email protected]"
- "--certificatesresolvers.letsencrypt.acme.storage=/letsencrypt/acme.json"
- "--certificatesresolvers.letsencrypt.acme.httpchallenge.entrypoint=web"
# Redirect HTTP → HTTPS
- "--entrypoints.web.http.redirections.entrypoint.to=websecure"
- "--entrypoints.web.http.redirections.entrypoint.scheme=https"
ports:
- "80:80"
- "443:443"
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro
- ./letsencrypt:/letsencrypt
labels:
- "traefik.enable=true"
- "traefik.http.routers.dashboard.rule=Host(\traefik.tuodominio.com\)"
- "traefik.http.routers.dashboard.service=api@internal"
- "traefik.http.routers.dashboard.middlewares=auth"
- "traefik.http.middlewares.auth.basicauth.users=admin:$$"

networks:
default:
name: traefik_network
external: true</code></pre>

<h2>Aggiungere un servizio a Traefik</h2>
<p>Aggiungi questi labels al docker-compose del tuo servizio:</p>
<pre><code>labels:
- "traefik.enable=true"
- "traefik.http.routers.mioservizio.rule=Host(\mioservizio.tuodominio.com\)"
- "traefik.http.routers.mioservizio.entrypoints=websecure"
- "traefik.http.routers.mioservizio.tls.certresolver=letsencrypt"
- "traefik.http.services.mioservizio.loadbalancer.server.port=8080"
networks:
- traefik_network</code></pre>

<h2>Crea la rete condivisa</h2>
<pre><code>docker network create traefik_network</code></pre>
<p>Tutti i servizi che vuoi esporre via Traefik devono essere sulla stessa rete <code>traefik_network</code>.</p>

<h2>DNS Wildcard per LAN (senza dominio pubblico)</h2>
<p>Se usi solo in LAN, puoi usare un dominio locale come <code>.homelab.lan</code>:</p>
<ol>
<li>Configura Pi-hole o il router per risolvere <code>
.homelab.lan</code> all\'IP del server Traefik</li>
<li>Usa certificato wildcard self-signed (o Step CA per PKI locale)</li>
</ol>

<h2>Middleware utili</h2>
<ul>
<li><strong>BasicAuth</strong>: autenticazione HTTP base per servizi senza login proprio</li>
<li><strong>RateLimit</strong>: proteggi dai brute force</li>
<li><strong>Headers</strong>: aggiungi security headers (HSTS, CSP, X-Frame-Options)</li>
<li><strong>Authelia</strong>: SSO completo con 2FA per tutti i servizi</li>
</ul>

📄 Info pagina

📂 🖥️ Self-Hosting
👤 Autore: @Sara_SelfHost
📅 Creata: 20/04/2026
📅 Aggiornata: 28/04/2026
👁️ Visualizzazioni: 301
🔄 Revisioni: 1
← Torna alla Wiki