Reverse proxy HTTPS
Exemples prêts à adapter pour Caddy, Nginx et Traefik, dans ou hors de Docker.
Choisissez l'exemple correspondant à l'emplacement du proxy. Le nom nasdash fonctionne uniquement si les deux conteneurs partagent le même réseau Docker. Un proxy installé sur l'hôte utilise généralement 127.0.0.1:2504.
Caddy installé sur l'hôte
Publiez NasDash uniquement sur la boucle locale :
services:
nasdash:
ports:
- "127.0.0.1:2504:2504"Puis dans Caddyfile :
nasdash.example.com {
encode zstd gzip
reverse_proxy 127.0.0.1:2504
}Caddy obtient le certificat si le DNS public pointe vers le serveur et si les ports nécessaires au challenge sont accessibles.
Nginx installé sur l'hôte
server {
listen 443 ssl http2;
server_name nasdash.example.com;
ssl_certificate /etc/letsencrypt/live/nasdash.example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/nasdash.example.com/privkey.pem;
location / {
proxy_pass http://127.0.0.1:2504;
proxy_http_version 1.1;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
}La gestion du certificat n'est pas assurée par NasDash. Testez la configuration Nginx avant rechargement.
Caddy dans le même Compose
services:
nasdash:
image: ghcr.io/lucas-lepajollec/nasdash:latest
expose:
- "2504"
networks: [web]
caddy:
image: caddy:2-alpine
ports:
- "80:80"
- "443:443"
- "443:443/udp"
volumes:
- ./Caddyfile:/etc/caddy/Caddyfile:ro
- caddy-data:/data
- caddy-config:/config
networks: [web]
networks:
web:
volumes:
caddy-data:
caddy-config:nasdash.example.com {
reverse_proxy nasdash:2504
}Traefik dans le même Compose
L'exemple suppose un réseau externe proxy déjà utilisé par Traefik et un resolver nommé letsencrypt :
services:
nasdash:
image: ghcr.io/lucas-lepajollec/nasdash:latest
networks: [proxy]
labels:
- "traefik.enable=true"
- "traefik.http.routers.nasdash.rule=Host(`nasdash.example.com`)"
- "traefik.http.routers.nasdash.entrypoints=websecure"
- "traefik.http.routers.nasdash.tls=true"
- "traefik.http.routers.nasdash.tls.certresolver=letsencrypt"
- "traefik.http.services.nasdash.loadbalancer.server.port=2504"
networks:
proxy:
external: trueContrôles après publication
curl -I https://nasdash.example.com/api/healthVérifiez aussi connexion, déconnexion, liens de services, chargement des widgets et absence de contenu mixte. N'ajoutez jamais les secrets NasDash dans les labels du proxy si son inspection est accessible à d'autres utilisateurs.