NasDash Docs
Exploitation

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 :

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:
Caddyfile
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: true

Contrôles après publication

curl -I https://nasdash.example.com/api/health

Vé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.

On this page