Aller au contenu
Q
QuoteNode

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.example
  • infra/.env.dev.example
  • infra/.env.dev-sid
  • infra/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 .env de 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.

VariableScopeUtiliteValeur typique
COMPOSE_PROJECT_NAMEDev / ComposeEvite les collisions de noms de conteneurs entre plusieurs stacks locales.quotenode-dev, quotenode-dev-sid
POSTGRES_PORTDev / ComposePort hote mappe vers PostgreSQL.5433, 5434
MAILPIT_PORTDev / ComposePort hote pour l’interface Mailpit.8025, 8026
BACKEND_PORTDev / ComposePort hote pour l’API backend.8091, 8092
FRONTEND_PORTDev / ComposePort hote pour le frontend.5174, 5175
VITE_PUBLIC_API_BASEDev / FrontendURL API visible navigateur utilisee par le frontend Vite local.http://localhost:8091, http://localhost:8092
APP_VERSIONProd / Dev / ComposeTag d’image Docker selectionne par Compose.latest, 1.0.0
PROXY_MODEProd / Dev / ComposeChoisit si Caddy tourne dans la stack (internal) ou si un reverse proxy externe est utilise (external).internal, external
DOMAINProd / ComposeDomaine public utilise par Caddy et les URLs publiques quand le mode proxy interne est actif.quotenode.example.com

Base de donnees et runtime principal

VariableScopeUtiliteValeur typique
DB_URLProd / DevChaine JDBC pour PostgreSQL.jdbc:postgresql://postgres:5432/quotenode
DB_USERNAMEProd / DevUtilisateur de base.quotenode, app
DB_PASSWORDProd / DevMot de passe de base.aleatoire 32+ caracteres en prod
DB_NAMEProd / Dev / ComposeNom de base utilise par l’app et par Compose.quotenode, app
SPRING_PROFILES_ACTIVEProd / DevActive le profil Spring.prod, dev
CORS_ALLOWED_ORIGINSProd / DevOrigines navigateur autorisees pour l’API. Evitez * en production.https://votredomaine.com
LOG_LEVELProd / DevNiveau de verbosite de base des logs applicatifs.ERROR, INFO, DEBUG

Rotation des logs Docker et diagnostics de support

VariableScopeUtiliteValeur typique
DOCKER_LOG_MAX_SIZEProd / ComposeTaille max d’un fichier de log conteneur avant rotation.10m
DOCKER_LOG_MAX_FILEProd / ComposeNombre de fichiers de log rotates a conserver.5
SUPPORT_LOGS_BUFFER_SIZEProdTaille du buffer d’aperçu des logs dans l’application.4000
SUPPORT_LOGS_PREVIEW_RATE_LIMIT_PER_MINUTEProdRate limit des requetes d’aperçu de logs support.30
SUPPORT_LOGS_LOG_LEVEL_DEFAULT_TTL_MINUTESProdTimeout de retour automatique au niveau de log standard.15
SUPPORT_LOGS_LOG_LEVEL_MAX_TTL_MINUTESProdFenetre max autorisee pour une elevation temporaire du niveau de log.30
SUPPORT_LOGS_LOG_LEVEL_ALLOWED_SCOPESProdScopes de packages pouvant etre temporairement eleves pour diagnostic.dev.quotenode,...

Authentification et securite de session

VariableScopeUtiliteValeur typique
DB_ENCRYPTION_KEYProd / DevCle principale de chiffrement applicatif pour les donnees sensibles.64 caracteres hex en prod
TIMING_TOKEN_SECRETProd / DevSecret HMAC pour la protection anti-bot basee sur le timing.32+ caracteres aleatoires
PUBLIC_LINK_PASSWORD_SESSION_SECRETProd / DevSecret de session pour les liens publics proteges par mot de passe.32+ caracteres aleatoires
AUTH_PASSWORD_MIN_LENGTHProd / DevLongueur minimale des mots de passe.12 en prod, 8 en dev
AUTH_PASSWORD_COMPLEXITY_LEVELProd / DevNiveau de complexite impose.2 en prod, 1 en dev
AUTH_SESSION_IDLE_TIMEOUT_MINProd / DevTimeout d’inactivite de session.30, 480
SECURITY_SESSION_ABSOLUTE_TIMEOUT_HProd / DevDuree max absolue d’une session.12, 24
SECURITY_MAX_FAILED_LOGINS_SOFTProd / DevSeuil d’echecs avant defense douce.5, 10
SECURITY_MAX_FAILED_LOGINS_TEMP_LOCKProd / DevSeuil d’echecs avant verrouillage temporaire.10, 20
SECURITY_MAX_FAILED_LOGINS_HARD_LOCKProd / DevSeuil d’echecs avant hard lockout.20, 50
SECURITY_TEMP_LOCK_MINUTESProd / DevDuree du verrouillage temporaire.30, 5
FEATURE_2FA_ENABLEDProd / DevMaster switch pour les flux 2FA.true, false
SECURITY_REQUIRE_2FA_ROLESProd / DevRoles devant obligatoirement enroler la 2FA.ADMIN
SECURITY_BOT_DETECTION_ENABLEDProd / DevActive la couche de detection de bots.true, false
SECURITY_BOT_SCORE_WARN_THRESHOLDProd / DevSeuil de score bot pour action warning-only.30
SECURITY_BOT_SCORE_BLOCK_THRESHOLDProd / DevSeuil de score bot pour blocage.70
SECURITY_IP_WHITELIST_FORCE_DISABLERuntime overrideOverride operateur d’urgence pour desactiver la whitelist IP stockee.false

CRM, fichiers, imports et media produit

VariableScopeUtiliteValeur typique
CRM_DEDUP_NAME_SIMILARITY_THRESHOLDProd / DevSeuil pg_trgm pour les avertissements de doublons de societe.0.8
CRM_DEDUP_EMAIL_DOMAIN_WARNProd / DevAlerte lorsque les domaines email business matchent des enregistrements existants.true
CRM_ATTACHMENT_MAX_SIZE_MBProd / DevTaille max d’une piece jointe CRM.25, 10
CRM_ATTACHMENT_ALLOWED_TYPESProd / DevExtensions autorisees pour les pieces jointes CRM.pdf,doc,docx,...
CSV_IMPORT_MAX_ROWSProd / DevLimite de lignes pour les imports CSV.5000
STORAGE_PATHProd / DevRepertoire racine des fichiers envoyes./data/uploads, ./data/uploads
PIM_MEDIA_MAX_SIZE_MBProd / DevTaille max d’une image produit.5, 10
PIM_MEDIA_MAX_PER_PRODUCTProd / DevNombre max de medias rattaches a un produit.5, 10
PIM_MEDIA_THUMBNAIL_WIDTHProd / DevLargeur des miniatures lors du traitement image.300
PIM_MEDIA_ALLOWED_TYPESProd / DevExtensions autorisees pour les medias produit.jpg,jpeg,png,webp,svg
IMPORT_ZIP_MAX_SIZE_MBProd / DevTaille max d’un ZIP d’images.100
IMPORT_ZIP_MAX_IMAGESProd / DevNombre max d’images dans un ZIP d’import.1000
IMPORT_IMAGE_MAX_SIZE_MBProd / DevTaille max d’une image dans les imports ZIP.5
IMPORT_IMAGE_FUZZY_THRESHOLDProd / DevSeuil de matching flou nom de fichier → produit.0.82

Shipping, FX et valeurs par defaut des offres

VariableScopeUtiliteValeur typique
SHIPPING_DEFAULT_VOLUMETRIC_DIVISORProd / DevDiviseur de poids volumetrique pour les calculs de transport.4000
SHIPPING_OVERRIDE_REQUIRES_REASONProd / DevOblige a justifier une surcharge manuelle de transport.true
FX_PROVIDERProd / DevSource des taux FX.NBP, MOCK, ECB, CUSTOM
FX_PROVIDER_URLProd / DevOverride d’URL de provider custom.vide sauf CUSTOM
FX_REFRESH_INTERVAL_MINProd / DevFrequence de refresh automatique des taux FX.60, 0
FX_DEFAULT_MARGIN_PERCENTProd / DevMarge par defaut appliquee sur les taux fournisseur.0
FX_DEVIATION_WARN_PERCENTProd / DevSeuil d’alerte pour les taux FX ajustes manuellement.3
FX_DEVIATION_BLOCK_PERCENTProd / DevSeuil de blocage pour les taux FX ajustes manuellement.8
OFFER_NUMBER_PREFIXProd / DevPrefixe utilise dans la numerotation des offres.OF

Email, liens publics et notifications

VariableScopeUtiliteValeur typique
SMTP_HOSTProd / DevHostname SMTP utilise pour l’envoi d’offres et de notifications.hostname fournisseur, localhost
SMTP_PORTProd / DevPort SMTP.587, 1025, 1026
SMTP_USERNAMEProd / DevNom d’utilisateur SMTP.compte fournisseur
SMTP_PASSWORDProd / DevMot de passe SMTP.secret fournisseur
SMTP_AUTHProd / DevActive l’authentification SMTP.true, false
SMTP_STARTTLSProd / DevActive la negociation STARTTLS.true, false
PUBLIC_LINK_TOKEN_BYTESProd / DevEntropie utilisee pour les tokens de liens publics.32
PUBLIC_LINK_DEFAULT_EXPIRY_DAYSProd / DevFenetre de validite par defaut des liens publics.0 pour aucune expiration
PUBLIC_RATE_LIMIT_OPEN_PER_HOURProd / DevLimite horaire d’ouverture des endpoints d’offre publique.60, 999
PUBLIC_RATE_LIMIT_ACTION_PER_HOURProd / DevLimite horaire d’actions publiques (accept / reject).5, 999
TRACKING_IP_ANONYMIZEProd / DevActive l’anonymisation IP du tracking.false
TRACKING_IP_ANONYMIZE_AFTER_DAYSProd / DevDelai avant anonymisation des IP de tracking.0
TRACKING_RETENTION_DAYSProd / DevDuree de retention des donnees de tracking des liens publics.365
CLIENT_CONFIRM_EMAIL_ENABLEDProd / DevEnvoie un email de confirmation au client apres acceptation.false
NOTIFICATIONS_ENABLEDProd / DevActive le sous-systeme de notifications.true
NOTIFICATIONS_EMAIL_ENABLEDProd / DevActive l’envoi email des notifications.true, false
NOTIFICATIONS_PUBLIC_PREFERENCES_URLProdURL publique de gestion des preferences de notification.https://votredomaine.com/notifications/preferences
NOTIFICATIONS_PREFERENCE_TOKEN_TTL_DAYSProdDuree de validite des tokens de preferences de notification.30
NOTIFICATIONS_OFFER_EXPIRY_WARN_DAYSProd / DevPlanning des rappels avant expiration des offres.7,2
NOTIFICATIONS_LICENSE_EXPIRY_WARN_DAYSProd / DevPlanning des rappels avant expiration des licences.30,14,7,1
REMINDERS_JOB_INTERVAL_MINUTESProd / DevFrequence de polling des jobs de rappel.5

Generation PDF

VariableScopeUtiliteValeur typique
PDF_ENABLEDProd / DevActive la generation PDF.true, false
PDF_GOTENBERG_URLProd / DevURL interne du service Gotenberg.http://gotenberg:3000
PDF_SYNC_TIMEOUT_MSProd / DevTimeout des requetes PDF synchrones.10000, 5000
PDF_SYNC_MAX_ITEMSProd / DevNombre max de lignes encore traitees en mode synchrone.50
PDF_STORAGE_PATHProd / DevChemin filesystem ou stocker les PDF generes./data/pdfs, ./data/pdfs
PDF_RETENTION_DAYSProd / DevDuree de retention des PDF generes.365
PDF_RETRY_BACKOFF_SECONDSProd / DevPlanning de retry pour les jobs PDF asynchrones.30,120,600
PDF_WORKER_CONCURRENCYProd / DevConcurrence des workers PDF.2
PDF_WORKER_POLL_INTERVAL_MSProd / DevIntervalle de polling des jobs PDF.2000

Licences, rapports et maintenance

VariableScopeUtiliteValeur typique
LICENSE_SKIP_SIGNATURE_CHECKProd / DevBypass de validation de signature de licence. A ne jamais activer en prod.false, true
LICENSE_EXPIRY_CHECK_INTERVAL_HProd / DevFrequence de relecture des expirations de licence.24
REPORTS_DEFAULT_PERIOD_DAYSProd / DevPlage de dates par defaut pour les rapports.30
REPORTS_EXPORT_MAX_ROWSProd / DevLimite de lignes pour les exports de rapport.10000

Backups, GeoIP et operations de confidentialite

VariableScopeUtiliteValeur typique
BACKUP_ENABLEDProd / DevActive les backups planifies.true, false
BACKUP_CRONProd / DevPlanification cron des sauvegardes.0 0 2 * * *
BACKUP_RETENTION_DAILYProd / DevNombre de backups quotidiens conserves.7
BACKUP_RETENTION_WEEKLYProd / DevNombre de backups hebdomadaires conserves.4
BACKUP_RETENTION_MONTHLYProd / DevNombre de backups mensuels conserves.12
BACKUP_LOCAL_DIRRuntime / ComposeRepertoire local utilise par les scripts de backup et les conteneurs backup-worker./app/data/backups
BACKUP_GPG_RECIPIENTProd / DevDestinataire GPG pour le chiffrement des backups.fingerprint ou email
BACKUP_RCLONE_REMOTEProd / DevDestination rclone pour les backups offsite.s3:bucket/path
BACKUP_ENCRYPTION_ENABLEDRuntime overrideSwitch interne ou smoke-test pour le comportement de chiffrement backup.false
GEOIP_ENABLEDProd / DevActive les controles GeoIP.false
GEOIP_DB_PATHProd / DevChemin vers la base GeoIP MaxMind./app/data/geoip/...
SECURITY_GEOIP_ALLOWED_COUNTRIESProd / DevAllowlist ISO de pays pour les controles GeoIP.vide ou PL,DE,CZ
MAXMIND_ACCOUNT_IDProdCompte MaxMind pour les telechargements GeoLite.account ID
MAXMIND_LICENSE_KEYProdCle de licence MaxMind.secret
GEOIP_EDITION_IDProdIdentifiant d’edition MaxMind.GeoLite2-Country
GDPR_ANONYMIZE_AUTO_AFTER_DAYSProd / DevHorizon 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_SECRET et les credentials SMTP comme des secrets devant etre sauvegardes de maniere sure.
  • Gardez les ports purement Compose et les variables frontend hors des .env de 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.

Last reviewed: Recently