Operations
Reference des variables d'environnement
Reference complete des variables d'environnement QuoteNode en production, developpement, Docker Compose, backup workers et outillage frontend.
Reference des variables d’environnement
Cette page consolide les variables d’environnement actuellement utilisees dans le projet QuoteNode.
La source de verite principale reste les templates du depot applicatif :
infra/.env.prod.exampleinfra/.env.dev.exampleinfra/.env.dev-sidinfra/docker-compose.*.yml
Utilisez cette page comme catalogue oriente operations. Pour une installation minimale, voir le Guide d’installation. Pour la topologie de deploiement, voir Options de deploiement.
Comment lire cette reference
- Prod signifie qu’une variable appartient a un fichier
.envde production. - Dev signifie environnement local de developpement ou stack de demonstration.
- Compose signifie wiring cote hote Docker Compose plutot que l’application elle-meme.
- Les valeurs par defaut vides veulent generalement dire “renseignez-la explicitement si vous avez besoin de cette fonctionnalite”.
Variables Compose et stack locale
Ces variables structurent l’environnement Docker Compose local et le proxy de dev frontend.
| Variable | Scope | Utilite | Valeur typique |
|---|---|---|---|
COMPOSE_PROJECT_NAME | Dev / Compose | Evite les collisions de noms de conteneurs entre plusieurs stacks locales. | quotenode-dev, quotenode-dev-sid |
POSTGRES_PORT | Dev / Compose | Port hote mappe vers PostgreSQL. | 5433, 5434 |
MAILPIT_PORT | Dev / Compose | Port hote pour l’interface Mailpit. | 8025, 8026 |
BACKEND_PORT | Dev / Compose | Port hote pour l’API backend. | 8091, 8092 |
FRONTEND_PORT | Dev / Compose | Port hote pour le frontend. | 5174, 5175 |
VITE_PUBLIC_API_BASE | Dev / Frontend | URL API visible navigateur utilisee par le frontend Vite local. | http://localhost:8091, http://localhost:8092 |
APP_VERSION | Prod / Dev / Compose | Tag d’image Docker selectionne par Compose. | latest, 1.0.0 |
PROXY_MODE | Prod / Dev / Compose | Choisit si Caddy tourne dans la stack (internal) ou si un reverse proxy externe est utilise (external). | internal, external |
DOMAIN | Prod / Compose | Domaine public utilise par Caddy et les URLs publiques quand le mode proxy interne est actif. | quotenode.example.com |
Base de donnees et runtime principal
| Variable | Scope | Utilite | Valeur typique |
|---|---|---|---|
DB_URL | Prod / Dev | Chaine JDBC pour PostgreSQL. | jdbc:postgresql://postgres:5432/quotenode |
DB_USERNAME | Prod / Dev | Utilisateur de base. | quotenode, app |
DB_PASSWORD | Prod / Dev | Mot de passe de base. | aleatoire 32+ caracteres en prod |
DB_NAME | Prod / Dev / Compose | Nom de base utilise par l’app et par Compose. | quotenode, app |
SPRING_PROFILES_ACTIVE | Prod / Dev | Active le profil Spring. | prod, dev |
CORS_ALLOWED_ORIGINS | Prod / Dev | Origines navigateur autorisees pour l’API. Evitez * en production. | https://votredomaine.com |
LOG_LEVEL | Prod / Dev | Niveau de verbosite de base des logs applicatifs. | ERROR, INFO, DEBUG |
Rotation des logs Docker et diagnostics de support
| Variable | Scope | Utilite | Valeur typique |
|---|---|---|---|
DOCKER_LOG_MAX_SIZE | Prod / Compose | Taille max d’un fichier de log conteneur avant rotation. | 10m |
DOCKER_LOG_MAX_FILE | Prod / Compose | Nombre de fichiers de log rotates a conserver. | 5 |
SUPPORT_LOGS_BUFFER_SIZE | Prod | Taille du buffer d’aperçu des logs dans l’application. | 4000 |
SUPPORT_LOGS_PREVIEW_RATE_LIMIT_PER_MINUTE | Prod | Rate limit des requetes d’aperçu de logs support. | 30 |
SUPPORT_LOGS_LOG_LEVEL_DEFAULT_TTL_MINUTES | Prod | Timeout de retour automatique au niveau de log standard. | 15 |
SUPPORT_LOGS_LOG_LEVEL_MAX_TTL_MINUTES | Prod | Fenetre max autorisee pour une elevation temporaire du niveau de log. | 30 |
SUPPORT_LOGS_LOG_LEVEL_ALLOWED_SCOPES | Prod | Scopes de packages pouvant etre temporairement eleves pour diagnostic. | dev.quotenode,... |
Authentification et securite de session
| Variable | Scope | Utilite | Valeur typique |
|---|---|---|---|
DB_ENCRYPTION_KEY | Prod / Dev | Cle principale de chiffrement applicatif pour les donnees sensibles. | 64 caracteres hex en prod |
TIMING_TOKEN_SECRET | Prod / Dev | Secret HMAC pour la protection anti-bot basee sur le timing. | 32+ caracteres aleatoires |
PUBLIC_LINK_PASSWORD_SESSION_SECRET | Prod / Dev | Secret de session pour les liens publics proteges par mot de passe. | 32+ caracteres aleatoires |
AUTH_PASSWORD_MIN_LENGTH | Prod / Dev | Longueur minimale des mots de passe. | 12 en prod, 8 en dev |
AUTH_PASSWORD_COMPLEXITY_LEVEL | Prod / Dev | Niveau de complexite impose. | 2 en prod, 1 en dev |
AUTH_SESSION_IDLE_TIMEOUT_MIN | Prod / Dev | Timeout d’inactivite de session. | 30, 480 |
SECURITY_SESSION_ABSOLUTE_TIMEOUT_H | Prod / Dev | Duree max absolue d’une session. | 12, 24 |
SECURITY_MAX_FAILED_LOGINS_SOFT | Prod / Dev | Seuil d’echecs avant defense douce. | 5, 10 |
SECURITY_MAX_FAILED_LOGINS_TEMP_LOCK | Prod / Dev | Seuil d’echecs avant verrouillage temporaire. | 10, 20 |
SECURITY_MAX_FAILED_LOGINS_HARD_LOCK | Prod / Dev | Seuil d’echecs avant hard lockout. | 20, 50 |
SECURITY_TEMP_LOCK_MINUTES | Prod / Dev | Duree du verrouillage temporaire. | 30, 5 |
FEATURE_2FA_ENABLED | Prod / Dev | Master switch pour les flux 2FA. | true, false |
SECURITY_REQUIRE_2FA_ROLES | Prod / Dev | Roles devant obligatoirement enroler la 2FA. | ADMIN |
SECURITY_BOT_DETECTION_ENABLED | Prod / Dev | Active la couche de detection de bots. | true, false |
SECURITY_BOT_SCORE_WARN_THRESHOLD | Prod / Dev | Seuil de score bot pour action warning-only. | 30 |
SECURITY_BOT_SCORE_BLOCK_THRESHOLD | Prod / Dev | Seuil de score bot pour blocage. | 70 |
SECURITY_IP_WHITELIST_FORCE_DISABLE | Runtime override | Override operateur d’urgence pour desactiver la whitelist IP stockee. | false |
CRM, fichiers, imports et media produit
| Variable | Scope | Utilite | Valeur typique |
|---|---|---|---|
CRM_DEDUP_NAME_SIMILARITY_THRESHOLD | Prod / Dev | Seuil pg_trgm pour les avertissements de doublons de societe. | 0.8 |
CRM_DEDUP_EMAIL_DOMAIN_WARN | Prod / Dev | Alerte lorsque les domaines email business matchent des enregistrements existants. | true |
CRM_ATTACHMENT_MAX_SIZE_MB | Prod / Dev | Taille max d’une piece jointe CRM. | 25, 10 |
CRM_ATTACHMENT_ALLOWED_TYPES | Prod / Dev | Extensions autorisees pour les pieces jointes CRM. | pdf,doc,docx,... |
CSV_IMPORT_MAX_ROWS | Prod / Dev | Limite de lignes pour les imports CSV. | 5000 |
STORAGE_PATH | Prod / Dev | Repertoire racine des fichiers envoyes. | /data/uploads, ./data/uploads |
PIM_MEDIA_MAX_SIZE_MB | Prod / Dev | Taille max d’une image produit. | 5, 10 |
PIM_MEDIA_MAX_PER_PRODUCT | Prod / Dev | Nombre max de medias rattaches a un produit. | 5, 10 |
PIM_MEDIA_THUMBNAIL_WIDTH | Prod / Dev | Largeur des miniatures lors du traitement image. | 300 |
PIM_MEDIA_ALLOWED_TYPES | Prod / Dev | Extensions autorisees pour les medias produit. | jpg,jpeg,png,webp,svg |
IMPORT_ZIP_MAX_SIZE_MB | Prod / Dev | Taille max d’un ZIP d’images. | 100 |
IMPORT_ZIP_MAX_IMAGES | Prod / Dev | Nombre max d’images dans un ZIP d’import. | 1000 |
IMPORT_IMAGE_MAX_SIZE_MB | Prod / Dev | Taille max d’une image dans les imports ZIP. | 5 |
IMPORT_IMAGE_FUZZY_THRESHOLD | Prod / Dev | Seuil de matching flou nom de fichier → produit. | 0.82 |
Shipping, FX et valeurs par defaut des offres
| Variable | Scope | Utilite | Valeur typique |
|---|---|---|---|
SHIPPING_DEFAULT_VOLUMETRIC_DIVISOR | Prod / Dev | Diviseur de poids volumetrique pour les calculs de transport. | 4000 |
SHIPPING_OVERRIDE_REQUIRES_REASON | Prod / Dev | Oblige a justifier une surcharge manuelle de transport. | true |
FX_PROVIDER | Prod / Dev | Source des taux FX. | NBP, MOCK, ECB, CUSTOM |
FX_PROVIDER_URL | Prod / Dev | Override d’URL de provider custom. | vide sauf CUSTOM |
FX_REFRESH_INTERVAL_MIN | Prod / Dev | Frequence de refresh automatique des taux FX. | 60, 0 |
FX_DEFAULT_MARGIN_PERCENT | Prod / Dev | Marge par defaut appliquee sur les taux fournisseur. | 0 |
FX_DEVIATION_WARN_PERCENT | Prod / Dev | Seuil d’alerte pour les taux FX ajustes manuellement. | 3 |
FX_DEVIATION_BLOCK_PERCENT | Prod / Dev | Seuil de blocage pour les taux FX ajustes manuellement. | 8 |
OFFER_NUMBER_PREFIX | Prod / Dev | Prefixe utilise dans la numerotation des offres. | OF |
Email, liens publics et notifications
| Variable | Scope | Utilite | Valeur typique |
|---|---|---|---|
SMTP_HOST | Prod / Dev | Hostname SMTP utilise pour l’envoi d’offres et de notifications. | hostname fournisseur, localhost |
SMTP_PORT | Prod / Dev | Port SMTP. | 587, 1025, 1026 |
SMTP_USERNAME | Prod / Dev | Nom d’utilisateur SMTP. | compte fournisseur |
SMTP_PASSWORD | Prod / Dev | Mot de passe SMTP. | secret fournisseur |
SMTP_AUTH | Prod / Dev | Active l’authentification SMTP. | true, false |
SMTP_STARTTLS | Prod / Dev | Active la negociation STARTTLS. | true, false |
PUBLIC_LINK_TOKEN_BYTES | Prod / Dev | Entropie utilisee pour les tokens de liens publics. | 32 |
PUBLIC_LINK_DEFAULT_EXPIRY_DAYS | Prod / Dev | Fenetre de validite par defaut des liens publics. | 0 pour aucune expiration |
PUBLIC_RATE_LIMIT_OPEN_PER_HOUR | Prod / Dev | Limite horaire d’ouverture des endpoints d’offre publique. | 60, 999 |
PUBLIC_RATE_LIMIT_ACTION_PER_HOUR | Prod / Dev | Limite horaire d’actions publiques (accept / reject). | 5, 999 |
TRACKING_IP_ANONYMIZE | Prod / Dev | Active l’anonymisation IP du tracking. | false |
TRACKING_IP_ANONYMIZE_AFTER_DAYS | Prod / Dev | Delai avant anonymisation des IP de tracking. | 0 |
TRACKING_RETENTION_DAYS | Prod / Dev | Duree de retention des donnees de tracking des liens publics. | 365 |
CLIENT_CONFIRM_EMAIL_ENABLED | Prod / Dev | Envoie un email de confirmation au client apres acceptation. | false |
NOTIFICATIONS_ENABLED | Prod / Dev | Active le sous-systeme de notifications. | true |
NOTIFICATIONS_EMAIL_ENABLED | Prod / Dev | Active l’envoi email des notifications. | true, false |
NOTIFICATIONS_PUBLIC_PREFERENCES_URL | Prod | URL publique de gestion des preferences de notification. | https://votredomaine.com/notifications/preferences |
NOTIFICATIONS_PREFERENCE_TOKEN_TTL_DAYS | Prod | Duree de validite des tokens de preferences de notification. | 30 |
NOTIFICATIONS_OFFER_EXPIRY_WARN_DAYS | Prod / Dev | Planning des rappels avant expiration des offres. | 7,2 |
NOTIFICATIONS_LICENSE_EXPIRY_WARN_DAYS | Prod / Dev | Planning des rappels avant expiration des licences. | 30,14,7,1 |
REMINDERS_JOB_INTERVAL_MINUTES | Prod / Dev | Frequence de polling des jobs de rappel. | 5 |
Generation PDF
| Variable | Scope | Utilite | Valeur typique |
|---|---|---|---|
PDF_ENABLED | Prod / Dev | Active la generation PDF. | true, false |
PDF_GOTENBERG_URL | Prod / Dev | URL interne du service Gotenberg. | http://gotenberg:3000 |
PDF_SYNC_TIMEOUT_MS | Prod / Dev | Timeout des requetes PDF synchrones. | 10000, 5000 |
PDF_SYNC_MAX_ITEMS | Prod / Dev | Nombre max de lignes encore traitees en mode synchrone. | 50 |
PDF_STORAGE_PATH | Prod / Dev | Chemin filesystem ou stocker les PDF generes. | /data/pdfs, ./data/pdfs |
PDF_RETENTION_DAYS | Prod / Dev | Duree de retention des PDF generes. | 365 |
PDF_RETRY_BACKOFF_SECONDS | Prod / Dev | Planning de retry pour les jobs PDF asynchrones. | 30,120,600 |
PDF_WORKER_CONCURRENCY | Prod / Dev | Concurrence des workers PDF. | 2 |
PDF_WORKER_POLL_INTERVAL_MS | Prod / Dev | Intervalle de polling des jobs PDF. | 2000 |
Licences, rapports et maintenance
| Variable | Scope | Utilite | Valeur typique |
|---|---|---|---|
LICENSE_SKIP_SIGNATURE_CHECK | Prod / Dev | Bypass de validation de signature de licence. A ne jamais activer en prod. | false, true |
LICENSE_EXPIRY_CHECK_INTERVAL_H | Prod / Dev | Frequence de relecture des expirations de licence. | 24 |
REPORTS_DEFAULT_PERIOD_DAYS | Prod / Dev | Plage de dates par defaut pour les rapports. | 30 |
REPORTS_EXPORT_MAX_ROWS | Prod / Dev | Limite de lignes pour les exports de rapport. | 10000 |
Backups, GeoIP et operations de confidentialite
| Variable | Scope | Utilite | Valeur typique |
|---|---|---|---|
BACKUP_ENABLED | Prod / Dev | Active les backups planifies. | true, false |
BACKUP_CRON | Prod / Dev | Planification cron des sauvegardes. | 0 0 2 * * * |
BACKUP_RETENTION_DAILY | Prod / Dev | Nombre de backups quotidiens conserves. | 7 |
BACKUP_RETENTION_WEEKLY | Prod / Dev | Nombre de backups hebdomadaires conserves. | 4 |
BACKUP_RETENTION_MONTHLY | Prod / Dev | Nombre de backups mensuels conserves. | 12 |
BACKUP_LOCAL_DIR | Runtime / Compose | Repertoire local utilise par les scripts de backup et les conteneurs backup-worker. | /app/data/backups |
BACKUP_GPG_RECIPIENT | Prod / Dev | Destinataire GPG pour le chiffrement des backups. | fingerprint ou email |
BACKUP_RCLONE_REMOTE | Prod / Dev | Destination rclone pour les backups offsite. | s3:bucket/path |
BACKUP_ENCRYPTION_ENABLED | Runtime override | Switch interne ou smoke-test pour le comportement de chiffrement backup. | false |
GEOIP_ENABLED | Prod / Dev | Active les controles GeoIP. | false |
GEOIP_DB_PATH | Prod / Dev | Chemin vers la base GeoIP MaxMind. | /app/data/geoip/... |
SECURITY_GEOIP_ALLOWED_COUNTRIES | Prod / Dev | Allowlist ISO de pays pour les controles GeoIP. | vide ou PL,DE,CZ |
MAXMIND_ACCOUNT_ID | Prod | Compte MaxMind pour les telechargements GeoLite. | account ID |
MAXMIND_LICENSE_KEY | Prod | Cle de licence MaxMind. | secret |
GEOIP_EDITION_ID | Prod | Identifiant d’edition MaxMind. | GeoLite2-Country |
GDPR_ANONYMIZE_AUTO_AFTER_DAYS | Prod / Dev | Horizon d’anonymisation automatique des workflows de confidentialite. | 0 |
Recommandations pratiques
- Partez du template de production pour les vrais deploiements et du template de developpement pour le travail local.
- Traitez
DB_ENCRYPTION_KEY,TIMING_TOKEN_SECRET,PUBLIC_LINK_PASSWORD_SESSION_SECRETet les credentials SMTP comme des secrets devant etre sauvegardes de maniere sure. - Gardez les ports purement Compose et les variables frontend hors des
.envde production sauf si votre modele de deploiement en a explicitement besoin. - Si vous cherchez la plus petite configuration de production viable, le Guide d’installation est volontairement plus court que cette reference.