Installation
Variables d'environnement de déploiement
Variables d'environnement minimales utilisées par les guides d'installation, avec des liens vers la référence complète.
Variables d’environnement de déploiement
Cette page liste les variables dont la plupart des opérateurs ont besoin pendant l’installation. Pour le catalogue complet, voir Référence des variables d’environnement.
Variables core requises
| Variable | Objectif |
|---|---|
DB_URL | JDBC URL pour PostgreSQL, généralement jdbc:postgresql://postgres:5432/quotenode dans Docker Compose. |
DB_NAME | Nom de la base de données PostgreSQL. |
DB_USERNAME | Utilisateur applicatif PostgreSQL. |
DB_PASSWORD | Mot de passe PostgreSQL. Utilisez une valeur aléatoire longue. |
DB_ENCRYPTION_KEY | Clé hex de 64 caractères pour le chiffrement applicatif. Sauvegardez-la en toute sécurité. |
TIMING_TOKEN_SECRET | Secret HMAC pour les vérifications de sécurité des timing tokens. |
PUBLIC_LINK_PASSWORD_SESSION_SECRET | Secret pour les sessions de liens publics protégés par mot de passe. |
CORS_ALLOWED_ORIGINS | Origines navigateur exactes autorisées à appeler le backend. |
Générer des secrets sur Linux/macOS :
openssl rand -hex 32
openssl rand -base64 32
Variables d’URL publiques
| Variable | Objectif |
|---|---|
CORS_ALLOWED_ORIGINS | Doit correspondre exactement à l’URL navigateur, par exemple https://crm.example.com. |
NOTIFICATIONS_PUBLIC_PREFERENCES_URL | URL publique pour les liens de préférence de notification, par exemple https://crm.example.com/notifications/preferences. |
DOMAIN | Utilisé par les déploiements Docker Compose avec proxy interne. Coolify gère normalement les domaines en dehors de l’application. |
SERVICE_URL_FRONTEND | Variable de compatibilité optionnelle pour les templates opérateurs et l’automatisation de déploiement future ; le fichier compose Coolify actuel ne la consomme pas directement. Gardez-la alignée avec l’origine frontend si votre déploiement l’utilise. |
Variables email
| Variable | Objectif |
|---|---|
SMTP_HOST | Hostname du serveur SMTP. |
SMTP_PORT | Port SMTP, généralement 587. |
SMTP_USERNAME | Nom d’utilisateur du compte SMTP. |
SMTP_PASSWORD | Mot de passe SMTP ou app password. |
SMTP_AUTH | Généralement true pour le SMTP de production. |
SMTP_STARTTLS | Généralement true pour le port 587. |
NOTIFICATIONS_ENABLED | Active les notifications. |
NOTIFICATIONS_EMAIL_ENABLED | Active la livraison email des notifications. |
Variables PDF, backup et sécurité
| Variable | Valeur beta recommandée | Notes |
|---|---|---|
PDF_ENABLED | true | Nécessite Gotenberg dans la stack. |
FEATURE_2FA_ENABLED | true | Active les flux d’authentification à deux facteurs. |
SECURITY_BOT_DETECTION_ENABLED | true | Maintient les protections anti-bot des liens publics actives. |
SECURITY_TRUSTED_PROXIES | vide (détecté automatiquement) | Pairs de reverse proxy de confiance supplémentaires (IP/CIDR littéraux et/ou noms d’hôte de service). Laissez-le vide en général : 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). À définir uniquement pour un proxy inhabituel dont le pair de transport est une adresse publique. Les en-têtes de transfert d’un pair direct (non interne) sont toujours ignorés. Vérifiez le mode du résolveur dans Administration → Sécurité → état effectif. |
SECURITY_IP_WHITELIST | vide | Liste blanche d’IP opérateur optionnelle (IP/CIDR séparés par des virgules). Lorsqu’elle est activée, elle protège toute la surface d’administration, y compris les écrans de connexion et de 2FA. Prioritaire sur le réglage de l’application et appliquée au démarrage (sans retour arrière automatique — vérifiez que votre propre adresse est couverte). |
SECURITY_IP_WHITELIST_FORCE_DISABLE | false | Urgence : mettez true + redémarrez pour récupérer d’un verrouillage de la liste d’IP (y compris l’impossibilité de se connecter). ENV uniquement. |
SECURITY_IP_WHITELIST_CONFIRMATION_WINDOW_SECONDS | 120 | Durée pendant laquelle une activation/un resserrement dans l’application reste en attente avant de revenir automatiquement à la liste précédente si votre session ne reconfirme pas (sécurité anti-verrouillage). Ne s’applique pas à la variable ENV ci-dessus. |
BACKUP_ENABLED | true pour la production, optionnel pour le premier essai local | À utiliser avec un processus de restauration testé. |
BACKUP_CRON | 0 0 2 * * * | 02h00 quotidien par défaut. |
GEOIP_ENABLED | false | Interrupteur d’application par pays uniquement — également l’interrupteur de secours. La base est chargée et mise à jour indépendamment (voir GEOIP_AUTO_UPDATE), elle peut donc être prête alors que l’application est désactivée. Mettez false + redémarrez pour récupérer d’un verrouillage de pays GeoIP — cela désactive l’application de façon fiable, que la base soit présente ou non. |
SECURITY_GEOIP_ALLOWED_COUNTRIES | vide | Liste de pays autorisés ISO 3166-1 alpha-2 (p. ex. PL,DE) ; en majuscules et validée. Vide = aucune restriction. |
LOG_LEVEL | INFO pour le premier déploiement, réduisez plus tard si besoin | Utilisez les diagnostics admin pour une escalade temporaire. |
Variables de vérification de release
| Variable | Objectif |
|---|---|
VITE_RELEASE_CHECK_ENABLED | Active les vérifications de release upstream admin-only. |
VITE_RELEASE_MANIFEST_URL | Défaut à https://quotenode.dev/releases/latest.json. |
APP_VERSION | Version de release ou tag d’image. Peut être vide pour les déploiements source. |
APP_CHANNEL | alpha, beta, rc, dev, ou stable. |
APP_COMMIT_SHA | Commit SHA intégré dans les métadonnées de build quand disponible. |
APP_BUILD_TIME | Timestamp de build. |
APP_BUILD_NUMBER | Numéro de build CI. |
APP_SOURCE_REF | Branche ou tag source. |
APP_IMAGE_TAG | Tag d’image sélectionné par le déploiement. |
Sécurité de la licence
N’activez jamais le contournement de signature dans un vrai déploiement :
LICENSE_SKIP_SIGNATURE_CHECK=false
Définissez cela explicitement à false dans les environnements de production et beta. Le fichier compose defaulte à false quand omis, mais les vrais déploiements ne devraient pas compter sur une valeur par défaut implicite pour un contrôle de sécurité de licence. Utilisez true uniquement dans des environnements de développement locaux jetables.