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 |
PG_JIT |
Dev / Compose | Compilation JIT de PostgreSQL. Désactivée par défaut — elle aide rarement cette charge OLTP. Mettre on pour activer. |
off |
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 |
APP_CHANNEL |
Prod / Dev / Compose | Canal de release intégré aux métadonnées de build et aux libellés de l’UI. | alpha, stable |
VITE_RELEASE_CHECK_ENABLED |
Prod / Dev / Frontend | Active la vérification de disponibilité des releases upstream (admin uniquement). | true, false |
VITE_RELEASE_MANIFEST_URL |
Prod / Dev / Frontend | URL du manifeste JSON public utilisé pour les vérifications de releases. | https://quotenode.dev/releases/latest.json |
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 |
SECURITY_TRUSTED_PROXIES |
Prod / Dev / Compose | Généralement vide — l’IP du client est détectée automatiquement derrière des proxys internes (plages privées/loopback) et des CDN comme Cloudflare (via CF-Connecting-IP). Les en-têtes de transfert d’un pair direct (non interne) sont ignorés. À définir uniquement pour un proxy inhabituel dont le pair de transport est une adresse publique. |
vide, 203.0.113.5/32 |
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 |
DB_AUTO_MIGRATE |
Prod / Dev | Migration automatique de version majeure de PostgreSQL au démarrage (utilisée par stack-up.sh). Désactivée par défaut ; si true, un volume de données plus ancien est sauvegardé puis migré avant le démarrage de la stack. |
false |
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 |
Prod / Dev | Liste blanche d’IP imposée par l’opérateur (IP/CIDR littéraux séparés par des virgules). Lorsqu’elle est activée, la liste blanche protège toute la surface d’administration — la connexion, le défi 2FA et chaque route d’administration authentifiée — ne laissant accessibles que les endpoints de santé/infrastructure et publics destinés aux clients. Lorsqu’elle est définie, elle prévaut sur la liste blanche du tenant dans l’application et est en lecture seule dans l’interface ; une liste opérateur est appliquée au démarrage sans retour arrière automatique, vérifiez donc que votre propre adresse est couverte. Vide = le réglage du tenant (le cas échéant) s’applique. Résout les clients via SECURITY_TRUSTED_PROXIES. |
vide, 203.0.113.10,198.51.100.0/24 |
SECURITY_IP_WHITELIST_FORCE_DISABLE |
Runtime override | Dérogation opérateur d’urgence qui désactive l’application de la whitelist IP stockée (vérifiée avant toute analyse de la liste, elle récupère donc aussi d’une liste stockée invalide — et, comme la whitelist protège désormais la connexion, elle restaure la possibilité de se connecter). Redémarrage requis ; ENV uniquement, jamais depuis l’interface. Désactive uniquement la whitelist IP — pas GeoIP, la détection de bots ou le rate limiting. | false |
SECURITY_IP_WHITELIST_CONFIRMATION_WINDOW_SECONDS |
Prod / Dev | Durée pendant laquelle une activation/un resserrement de la whitelist dans l’application reste en attente de reconfirmation avant de revenir automatiquement à la liste précédente (sécurité anti-verrouillage). La session en cours d’édition confirme automatiquement lorsque son adresse actuelle est couverte. | 120 |
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 (CRM). | 5000 |
APP_PRODUCT_IMPORT_MAX_ROWS |
Prod / Dev | Limite de lignes pour les imports de produits (CSV/XLSX). | 50000 |
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. | 3, 5 |
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 |
PIM_MEDIA_MAX_MEGAPIXELS |
Prod / Dev | Rejette les images dont les dimensions en pixels depassent ce nombre de megapixels — verifie depuis l’en-tete avant tout decodage complet (garde-fou memoire contre les bombes de decompression). | 40 |
PIM_MEDIA_OPTIMIZE_ENABLED |
Prod / Dev | Redimensionne et re-encode l’original stocke a l’upload. false conserve les originaux tels quels. |
true |
PIM_MEDIA_OPTIMIZE_MAX_DIMENSION |
Prod / Dev | Limite du plus grand cote (px) pour l’original stocke quand l’optimisation est activee (les offres utilisent toujours une miniature de 300 px). | 2560 |
PIM_MEDIA_OPTIMIZE_QUALITY |
Prod / Dev | Qualite de re-encodage JPEG (0.0–1.0) lors de l’optimisation des images. |
0.85 |
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 |
MULTIPART_MAX_FILE_SIZE |
Prod / Dev | Plafond global pour un fichier unique — l’enveloppe d’upload. Les limites par fonction ci-dessus sont appliquees separement et sont plus strictes. Dimensionne pour le plus gros upload legitime : une archive ZIP d’images. | 200MB |
MULTIPART_MAX_REQUEST_SIZE |
Prod / Dev | Plafond global pour une requete multipart entiere, ex. upload multi-fichiers. | 220MB |
MULTIPART_FILE_SIZE_THRESHOLD |
Prod / Dev | Les uploads plus gros sont ecrits dans un fichier temporaire plutot qu’en memoire — hors du tas JVM. | 2MB |
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_ARCHIVE_ENCRYPTION_MODE |
Prod / Dev | Chiffrement d’archive : AGE_RECIPIENT (recommandé) ou NONE. |
AGE_RECIPIENT |
BACKUP_AGE_RECIPIENT |
Prod / Dev | Destinataire public age (age1...) pour les archives chiffrées. |
age1... |
BACKUP_DATABASE_PAYLOAD_MODE |
Prod / Dev | Mode base de données : APP_ENCRYPTED (défaut) ou PII_DECRYPTED. |
APP_ENCRYPTED |
JOBS_MODE |
Prod / Dev / Compose | Quels jobs planifiés le planificateur JVM exécute : all (web + sauvegardes dans un seul conteneur), web (web uniquement — à associer à un worker backup-only), backup-only (worker de sauvegarde dédié). |
all |
BACKUP_RUNTIME_PROFILE |
Prod / Dev | Étiquette de profil d’exécution enregistrée dans les logs/manifestes de sauvegarde : WORKER, WEB_MAINTENANCE, ONE_SHOT, OFFLINE_MAINTENANCE. Associez WEB_MAINTENANCE à JOBS_MODE=all (sans worker séparé) ; associez WORKER à JOBS_MODE=web + un worker backup-only. |
WORKER |
BACKUP_VERIFY_MODE |
Prod / Dev | Vérification post-sauvegarde : off, archive, sandbox. |
off |
BACKUP_ALLOW_UNENCRYPTED_LOCAL_BACKUP |
Prod / Dev | Autorise explicitement une sauvegarde locale non chiffrée. | false |
BACKUP_RCLONE_REMOTE |
Prod / Dev | Destination rclone pour les backups offsite. | s3:bucket/path |
BACKUP_OFFLINE_NOTICE_SECONDS |
Prod | Délai de grâce avant l’arrêt des services en maintenance offline. | 300 |
BACKUP_MAINTENANCE_PAGE_ENABLED |
Prod | Sert une page de maintenance statique pendant la sauvegarde offline. | false |
BACKUP_DOWNLOAD_GRANT_TTL_SECONDS |
Prod / Dev | TTL des autorisations de téléchargement de sauvegarde à usage unique. | 120 |
GEOIP_ENABLED |
Prod / Dev | Interrupteur d’application par pays uniquement (également l’interrupteur de secours). La base se charge et se met à jour indépendamment — voir GEOIP_AUTO_UPDATE. |
false |
GEOIP_DB_PATH |
Prod / Dev | Chemin vers la base GeoIP (téléchargée automatiquement au démarrage ; DB-IP sans clé par défaut, MaxMind via 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.