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