1 Variables d'environnement — Nginx Dashboard
romain edited this page 2026-05-21 05:43:33 +00:00

Note

: ne pas mettre de guillemets autour des valeurs dans le fichier .env. Toutes les variables sont optionnelles sauf mention contraire.


Général

Variable Défaut Description
PORT 3000 Port d'écoute du dashboard
DOCKER_SOCKET /var/run/docker.sock Chemin vers le socket Docker (API HTTP)

Authentification & Sessions

Variable Défaut Description
API_TOKEN changeme Token Bearer pour l'API REST — générer avec openssl rand -hex 32
SESSION_SECRET (aléatoire) Secret HMAC pour les cookies de session — générer avec openssl rand -hex 32
SESSION_TTL_HOURS 8 Durée de vie des sessions en heures
WEBHOOK_SECRET changeme Secret pour la signature des webhooks sortants
USERS_FILE /config/users.yml Chemin vers le fichier de configuration des utilisateurs

Nginx

Variable Défaut Description
NGINX_VTS_URL http://nginx:8080/status.json URL de l'endpoint JSON du module VTS
NGINX_CONTAINER nginx Nom du conteneur nginx (pour les commandes via API Docker)
NGINX_IMAGE (auto-détecté) Image Docker utilisée pour les conteneurs de test éphémères (nginx -t). Si vide, auto-détectée depuis le conteneur nginx actif
NGINX_CONF_FILE /etc/nginx/nginx.conf Chemin du fichier de configuration principal nginx dans le conteneur de test

Répertoires (chemins dans le conteneur dashboard)

Ces chemins correspondent aux volumes montés depuis l'hôte.

Variable Défaut Description
DIR_SITES /nginx/sites Virtualhost files (sites/*.conf)
DIR_CONF /nginx/conf Global conf files (conf.d/*.conf)
DIR_SNIPPETS /nginx/snippets Snippets réutilisables
DIR_STREAMS /nginx/streams Configs stream TCP/UDP
DIR_SSL /nginx/ssl Certificats SSL manuels (.cer, .key)
DIR_CERTS /nginx/certs Certificats Let's Encrypt (Certbot)
DIR_LOGS /nginx/logs Fichiers de logs nginx
DIR_BACKUPS /nginx/backups Dossier de stockage des sauvegardes ZIP
DIR_GOACCESS /nginx/goaccess Dossier GoAccess (conf, db, reports)

Chemins hôte pour les bind mounts Docker

Ces chemins sont utilisés lors de la création de conteneurs via l'API Docker socket. Ils doivent être des chemins absolus sur l'hôte, pas dans le conteneur dashboard.

Variable Défaut Description
HOST_LOGS (valeur de DIR_LOGS) Chemin absolu hôte du dossier logs — ex: /containers/nginx-rproxy/logs
HOST_GOACCESS (valeur de DIR_GOACCESS) Chemin absolu hôte du dossier GoAccess — ex: /containers/nginx-rproxy/goaccess

Important : si HOST_LOGS n'est pas défini, GoAccess ne trouvera pas les fichiers de log car le chemin du conteneur dashboard (/nginx/logs) n'existe pas sur l'hôte.


Déploiement Git

Variable Défaut Description
GIT_REPO_URL (vide) URL du dépôt Git — HTTPS (https://...) ou SSH (git@...)
GIT_BRANCH main Branche source à déployer
GIT_BACKUP_BRANCH backup Branche orpheline pour les sauvegardes Git
GIT_TOKEN (vide) Token d'authentification HTTPS (GitHub, Gitea, Forgejo...). Intégré dans l'URL automatiquement
GIT_SSH_KEY (vide) Chemin vers la clé SSH dans le conteneur — ex: /config/id_rsa (à monter en volume)
DIR_GIT_WORK /git-work Répertoire de travail du clone Git (volume nommé Docker)

Sauvegardes

Variable Défaut Description
BACKUP_KEEP 20 Nombre de sauvegardes ZIP locales à conserver (rotation automatique)

CrowdSec

Deux modes disponibles, cumulables. L'onglet CrowdSec est masqué si aucune variable n'est configurée.

Mode Prometheus (recommandé)

Variable Défaut Description
CROWDSEC_PROMETHEUS_URL (vide) URL de l'endpoint Prometheus de CrowdSec — ex: http://10.0.0.5:6060
CROWDSEC_LOCAL_ONLY false true ou 1 pour masquer les décisions CAPI (communauté) et n'afficher que les décisions locales (origin=crowdsec)

Mode LAPI (pour la liste des IPs bannies avec détails)

Variable Défaut Description
CROWDSEC_URL (vide) URL de la LAPI CrowdSec — ex: http://10.0.0.5:8080
CROWDSEC_API_KEY (vide) Clé API bouncer — générer avec cscli bouncers add nginx-dashboard

Les deux modes sont compatibles. Prometheus est utilisé en priorité pour les métriques ; LAPI est utilisé en complément pour la liste détaillée des décisions (IP, scénario, durée).


GoAccess

Variable Défaut Description
GOACCESS_IMAGE allinurl/goaccess:latest Image Docker GoAccess utilisée pour les conteneurs par vhost
NGINX_NETWORK nginx-net Nom du réseau Docker partagé entre nginx, dashboard et les conteneurs GoAccess. Vérifier avec docker network ls

GOACCESS_LOG_FORMAT et GOACCESS_REFRESH sont déclarés mais sans effet fonctionnel : le format est auto-détecté depuis la première ligne du fichier de log, et le refresh est géré nativement par le WebSocket de GoAccess.


Branding

Ces variables sont des ARG Dockerfile — elles doivent être passées à la construction de l'image (docker compose build), pas au runtime.

Variable Défaut Description
BRANDING_KOFI (vide) URL Ko-fi affichée en bas du menu — ex: https://ko-fi.com/rdrit0980
BRANDING_KOFI_LABEL Support on Ko-fi Label du lien Ko-fi
BRANDING_SITE (vide) URL du site web — ex: https://rdr-it.com/
BRANDING_SITE_LABEL (vide) Label du lien site web
BRANDING_REPO (vide) URL du dépôt source — ex: https://forge.rdr-it.com/...
BRANDING_REPO_LABEL Source repository Label du lien dépôt

Déclaration dans docker-compose.yml :

build:
  context: ./nginx-dashboard
  args:
    BRANDING_KOFI: https://ko-fi.com/rdrit0980
    BRANDING_SITE: https://rdr-it.com/
    BRANDING_REPO: https://forge.rdr-it.com/Dockerfiles/nginx-reverse-proxy-dashboard

Exemple de fichier .env minimal

# Secrets — à générer impérativement
API_TOKEN=<openssl rand -hex 32>
SESSION_SECRET=<openssl rand -hex 32>
WEBHOOK_SECRET=<openssl rand -hex 32>

# Nginx
NGINX_IMAGE=forge.rdr-it.com/dockerfiles/nginx-reverse-proxy:1.30.1

# Git
GIT_REPO_URL=https://forge.rdr-it.com/Serveurs/mon-serveur-nginx.git
GIT_TOKEN=mon-token-forgejo

# Chemins hôte (adapter selon votre installation)
HOST_LOGS=/containers/nginx-rproxy/logs
HOST_GOACCESS=/containers/nginx-rproxy/goaccess

# Réseau Docker
NGINX_NETWORK=nginx-net

# GoAccess
GOACCESS_IMAGE=allinurl/goaccess:latest

# CrowdSec
CROWDSEC_PROMETHEUS_URL=http://10.199.0.5:6060
CROWDSEC_LOCAL_ONLY=true
CROWDSEC_URL=http://10.199.0.5:8080
CROWDSEC_API_KEY=ma-cle-api-crowdsec